- 2005/02/12 Sat
-
寝て。起きて。せっかくなので桁分割。
一定の桁で区切って配列に突っ込み、桁上がりと桁借りの処理を自前ですればいいわけだ。
各要素をintにするとして有効桁数は9桁。PもしくはQを乗じた結果がこれを溢れないように桁を区切る必要がある。
とりあえず作ってみたが、354224848179261915075は問題なし。
配列要素数の限界 * 区切り桁数がそのまま計算可能桁数となるので、仮に要素数がunsigned int分持てるとして、さらにPとQが1桁であることが保証されるなら区切りは8桁にでき、34359738368桁まで計算可能ということに?
まぁ、当然要素数の限界より先にメモリが限界に達するだろうわけで、仮に1GB使用可能で区切り桁数は有効桁数をPもしくはQと折半で使うとすると、3億桁くらいまでか。
出力のこととか考えると現実的には100万桁くらいがせいぜいな気はしますが。