宇宙

3.長精度計算方法の基礎


・どの言語もそうですが、何千,何万桁も扱える変数を持つ言語なんて寡聞にして存じません。 それならどうやって円周率を何万桁も計算できるのでしょうか? 実はそう、難しいことではありません。

・基本的な考え方は配列です。配列の1つの要素を桁と考えることで,例えば100進法や10000進法を実現 できるわけです。これなら,メモリが許す限り長精度の計算が実現できます。
例えば,10進法の54321と言う数字を配列を使って表してみると。下記のようになります。


5 4 3 2 1

この場合は,配列の1番目は万の位,2番目は千の位,3番目は百の位,4番目は十の位そして5番目は一の位 と言うことです。通常の10進法ですね。
ここで,以下のように読み替えを行います。
5番目の配列:1
4番目の配列:0--9999 × 10000
3番目の配列:0--9999 × 10000^2
2番目の配列:0--9999 × 10000^3
1番目の配列:0--9999 × 10000^4

つまり10000進法です。
この表現を使うと,

5 0000 0000 0000 0000 = 5 * (10000)^4
4 0000 0000 0000 = 4 * (10000)^3
3 0000 0000 = 3 * (10000)^2
2 0000 = 2 * (10000)^1
1 = 1
→ 5 0004 0003 0002 0001

と言う長大な桁の数を表していることになります。配列の要素数を増やせばもっと長大な桁数の数も表現できる ことが分かると思います。もちろん表現だけではなくて,四則演算もできます。 繰り上がりと繰り下がりにちょっと注意すれば,難しいことではありません。





目次へ戻る
宇宙