データの形式

円周率を高精度で計算する方法として、計算を繰り返して1桁(または数桁)ずつ順に求めることが出来れば良いのですが、 そんな方法は知られていません。 (^_^;
求める精度に合わせた計算領域を設定して、その精度に合わせて計算を行います。
ついでに C# の Console.WriteLine を使った普段は使わない編集方法も学んで下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

現在使われている方法は、円周率を求める精度に合わせた計算領域を用意して、計算を始めます。
例えば、4千桁を計算するときは4千桁+α分の領域を、1億桁を計算するときは1億桁+α分の領域を準備します。
ところで幾らコンピュータが発展したからと言って、数千桁の精度で計算してくれる命令なんて存在しませんよね。 (;_;)
どうするかと言えば配列を使って4千桁(数億桁)の精度まで計算するのです。

目標は4千桁なのですが、とりあえず十数桁の円周率を定数で与えて表示するプログラムを示します。
short 型には -32768~+32767 までの値を格納することが出来ますが、この領域に十進数4桁を格納します。
short 型一個に十進数を4桁格納するので new short[4] で定義すれば、最大16桁の計算をすることが出来ますよね。
領域は short 型(整数型)で定義しましたが、円周率は小数点以下が無限に続く実数型です。
そこで t[0] と t[1] の間に小数点があるものとして考えるのです。
プログラムを実行して 3.141592653589 と表示されることを確認して下さい。

ソースコードです

/***************************************************/
/*★ 円周率を4000桁まで計算する     前田  稔 ★*/
/***************************************************/
using System;

class Prog
{
    static short[]  t = new short[4] { 3, 1415, 9265, 3589 };

    //★Main() 関数
    public static void Main()
    {
        Console.WriteLine("円周率= {0}.{1:d4}{2:d4}{3:d4}",t[0],t[1],t[2],t[3]);
        Console.ReadLine();
    }
}

[Next Chapter ↓] 4000桁を表示
[Previous Chapter ↑] 円周率の話と実行結果

前田稔(Maeda Minoru)の超初心者の C#(Frame Work)