プログラミング(数字の桁数1000桁のたし算)




「コンピュータでπを小数1億桁まで求めた」などのように、とんでもない桁数の話がでます。それで、大きい桁数の計算の基本・プログラムの基本を掲載いたします。たとえば、1000桁のたし算をする方法です。

通常、プログラムで数字を扱う場合、だいたいは最高で15桁くらいまでしか扱えなくて、桁数を越えてしまうとオーバーフローのエラーになってしまいます。そこで、それなりのテクニックを使ってエラーを回避する必要があります。

小学生に戻って、たとえば3278*782を計算してみます

これが10進法での計算です。特に注意していただきたいのは、「繰り上げ」についてです。1桁ずつ計算し、10を越える部分を次の桁にたしています。

これを応用して、100進法で計算してみます。

100を越える部分を次の2桁にたしているのが理解していただけると思います。

1万進法のたし算のプログラムを説明します。

2つの数AとBがあって、A+Bを計算してみます。A、Bそれぞれ1000桁を4桁ずつ区切って、

A(250)にはAの997桁目から1000桁目
・
・
A(2)にはAの5桁目から8桁目
A(1)にはAの1桁目から4桁目
同様に、B(250)




B(2)
B(1)にBから入れます。
計算結果は、C(250)




C(2)
C(1)に入れることにします。
1000桁のオーバー分は切り捨てとします。

For I = 1 to 250
C(I) = 0
Next I
For I = 1 to 250
C(I) = C(I) + A(I) + B(I)    -------------------4桁ごとに加算
IF I = 250 Then
C(I) = C(I) - Int(C(I) / 10000) * 10000
Exit For
End if
C(I + 1) = C(I + 1) + Int(C(I) / 10000) --------5桁目以降は繰り上げ
C(I) = C(I) - Int(C(I) / 10000) * 10000 --------10000で割ったときの余り
Next I

その他、ひき算・かけ算・わり算・小数のたし算等も、小学生の計算方法の 「繰り上げ」を応用すればできます。
そして、√(ルート)・Sin・Cos・Tan等については、高校で習う テーラー展開で計算できます。

不等式 関数 図形と方程式 軌跡と領域 微積分―整関数 公式集

「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook|