円周率の話

前田稔の超初心者のプログラム入門

ごく大ざっぱな円周率

ごく大ざっぱな円周率は、次の式で求められる。
    22/7 = 3.1428


簡単な円周率の計算

  1. 初項から第n項までの総和を求める。
  2. ①で求めた値に、次の補正値を加える。(n:項の数)
  3. この補正値を加えても、л の真値に対しておよそ 1/n**5 の誤差がある。


世界で最も退屈な本

世界で最も退屈な本が売り出された。
ものの5分も読めば眠くなること請け合いで、睡眠薬顔負けの薬屋にでも売っていそうなこの本は、百ページ以上に渡って円周率が延々と続いている。
あなたは何ページまで耐えられる?

またまた衝撃的な記事が 2012/6/22(金) 朝日新聞の夕刊に掲載されました。
牧野貴樹著「円周率1,000,000桁表」(暗黒通信団)
白い表紙に大きく書かれた「π」の一文字はどこまでも素直で、開くとそこには1ページ1万字の数字が幾重にも続き、巻末にはしゃれの利いた一言が記されている。
「使いようは無い、かもしれないが、衝動的に手に取り衝撃を受ける人は多いだろう」。
今なら発売されたばかりで、本屋に並んでいる可能性が高く、あなたも一冊いかがでしょうか。 (^_^;)
はたして何冊売れるのだろうか?と他人事ながら心配です。

ちなみに円周率の最初の部分は、次のようになる。
  3.1415 9265 3589 7932 3846 2643 3832 7950 2884 1971 6939 9375 1058

円周率の歴史

  1. 円周率とは「円周の長さとその直径との比」で、起源は古く紀元前10世紀のソロモン王時代の記録に「л=3」の記述があるという。
  2. ギリシヤの哲学者アルキメデスは、小数以下2桁まで正しい数値を出すことに成功している。
  3. 17世紀初頭ドイツの数学者ルドルフは、70歳の生涯を費やして、円に内外接する「正2 ** 62角形」を作り、小数以下35桁までつきとめた。
  4. 1873年、W.Shanksが


    と組み合わせた Machin の公式により、小数以下 707位まで算出したが、1946年その値には小数以下 528位に誤りがあったことが発見された。
  5. 1948年、人類最初のコンピュータENICAは、72時間で2035桁まで計算した。
  6. 1961年には、IBM7090が8時間43分で10万265桁まで計算してみせた。
  7. 1984年、日立M-200Hにかけ、10万桁を13分57秒で計算した。
    さらに計137時間で200万桁までつきとめた。
  8. 1991年にはコロンビア大学で22億桁まで計算された。
  9. 円周率の計算はスーパーコンピュータの性能評価にも使われ、メーカーのバックアップの元でコロンビア大学と東京大学が円周率競争を続けているのは有名な話である。
  10. 1995年8月17日には東京大学大型計算機センター助教授の金田康正さんが、東大のスーパーコンピュータを約37時間かけて小数以下32億2122万桁まで計算した。
    ここまで来ると検証するのも大変で、円周率に関する2つの公式を使って2種類のプログラムを作成して、両方で同じ答が出たので「正解」と判断したという。
  11. ちなみに円周率は無限に続くことが数学的に証明されているそうである。

円周率の最新情報

円周率1兆2411億ケタまで計算
東京大学情報基盤センターの金田康正教授や日立製作所の共同研究グループは、 2002年9月3日から同25日までの400時間をかけて、 円周率を小数点以下1兆2411憶ケタまで求めることに成功したと発表した。
また、約157時間をかけて、その結果を検算した。
これまでの世界記録は、金田教授らが99年9月に求めた2061億桁だった。

筑波大(茨城県つくば市)は2009年8月17日、同大計算科学研究センターのスーパーコンピューターが、 円周率の計算で2兆5769億8037万桁(けた)の世界記録を樹立し、ギネスブックへ登録を申請したと発表した。
これまでの世界記録は、東京大情報基盤センターなどが平成14年に達成した1兆2411億桁で、2倍以上の記録更新となった。

2010年1月12日2兆6999億9999万桁まで計算し、世界記録を更新したとのニュースが飛び込みました。
パリ在住のフランス人ベラールさんで、約26万円のデスクトップパソコンで103日間かけて計算したそうです。
新たな記録をダウンロードするには1137ギガバイトのスペースが必要だとしている。

2010年8月ビックリするようなニュースが飛び込んできました。
長野県飯田市の会社員、近藤茂さん(55)が、自宅のパソコンで円周率を小数点以下5兆けたまで計算し、 昨年末にフランスの技術者がパソコンで記録した約2兆7千億けたを大幅に更新した。
かつてスーパーコンピューター(スパコン)の独壇場だった円周率計算。
近藤さんは「スパコンに追い付け」と手作りのパソコンで試行錯誤を重ね、停電の危機も乗り越えて新記録を達成した。
近くギネスブック登録を申請する予定だ。
近藤さんによると、自作パソコンに通常の数十台分となる32テラバイトのハードディスクを搭載。
米国の大学院生、アレクサンダー・J・イーさん(22)のプログラムを使った。
メールを通じてテストを繰り返した後、5月4日に計算を開始。8月3日まで検証を含め90日と約7時間かかった。
計算中は苦労の連続。妻の幸子さん(53)は「電気代が月2万円もかかって大変だった」と苦笑する。
長女(29)がドライヤーを使い、ブレーカーが落ちたことも。10分間持つ予備電力で辛うじてしのいだ。
パソコンの熱で部屋は40度近くに。部品をむき出しにして扇風機で冷やし続けた。

円に内接する正方形から円周率を計算する

  1. 半径(R)=1の円の外周は 2лR であり、1/2にすれば円周率が求まる。
  2. いま、円に内接する正方形の1辺の長さは、ピタゴラスの定理 「直角三角形の斜辺の上に立つ正方形の面積は、他の二辺の上に立つ正方形の面積の和に等しい」 から計算できる。
    直角三角形で2辺の長さが等しいときの辺の比率は「1:1:sqrt(2)」なので、 半径 R を 1 とすると、正方形の辺の長さは「1/sqrt(2)」となる。
    正方形の1辺の長さ = 1/sqrt(2)
  3. 次に正方形の値を元に、正8角形の1辺の長さを計算する。
    1/4に分割した円弧に二分線を描く。

    L(多角形の辺の半分) = 最初は正方形の辺/2
    H(三角形の高さ) = sqrt(1**2-L**2) = sqrt(1-L**2)
    L'(八角形の辺) = sqrt((1-H)**2 + L**2)
  4. 正方形より正八角形の方が円に近く、正16角形の方がより円に近い。
    これを繰り返せば、かなり正確な円周率を求める事ができる。
  5. 説明では正方形から始めたが、正6角形から始めても良い。
  6. 超初心者のプログラム入門(C/C++/CLI)の「正多角形で円周率を計算」にプログラムを掲載しています。
    また プログラム入門(Java2)の「正多角形で円周率を求める」にもプログラムを掲載しています。

円周率の計算に有望な公式

もっと正確に円周率を計算するには、次の公式を使います。
導き出す方法は知りませんが、この式は近似式ではなく恒等式なので、精度を上げて計算すれば幾らでも正確な円周率を計算することができます。
  1. 公式-1
  2. 公式-2


  3. 公式-2 を変形

  4. Arctan() 関数
    ここで問題となるのが Arctan() 関数ですが、幸いにして収束が速く高精度で計算できる公式があります。
    この公式を利用して、自前で高精度の Arctan() 関数を作成するのが最大の難関です。

  5. 超初心者のプログラム入門(C/C++/CLI) の「4000桁の円周率を求める」にプログラムを掲載しています。
円周率の最初の1000桁です。
pai=
    1: 3.1415 9265 3589 7932 3846 2643 3832 7950 2884 1971 
   41:   6939 9375 1058 2097 4944 5923 0781 6406 2862 0899 
   81:   8628 0348 2534 2117 0679 8214 8086 5132 8230 6647 
  121:   0938 4460 9550 5822 3172 5359 4081 2848 1117 4502 
  161:   8410 2701 9385 2110 5559 6446 2294 8954 9303 8196 
  201:   4428 8109 7566 5933 4461 2847 5648 2337 8678 3165 
  241:   2712 0190 9145 6485 6692 3460 3486 1045 4326 6482 
  281:   1339 3607 2602 4914 1273 7245 8700 6606 3155 8817 
  321:   4881 5209 2096 2829 2540 9171 5364 3678 9259 0360 
  361:   0113 3053 0548 8204 6652 1384 1469 5194 1511 6094 
  401:   3305 7270 3657 5959 1953 0921 8611 7381 9326 1179 
  441:   3105 1185 4807 4462 3799 6274 9567 3518 8575 2724 
  481:   8912 2793 8183 0119 4912 9833 6733 6244 0656 6430 
  521:   8602 1394 9463 9522 4737 1907 0217 9860 9437 0277 
  561:   0539 2171 7629 3176 7523 8467 4818 4676 6940 5132 
  601:   0005 6812 7145 2635 6082 7785 7713 4275 7789 6091 
  641:   7363 7178 7214 6844 0901 2249 5343 0146 5495 8537 
  681:   1050 7922 7968 9258 9235 4201 9956 1121 2902 1960 
  721:   8640 3441 8159 8136 2977 4771 3099 6051 8707 2113 
  761:   4999 9998 3729 7804 9951 0597 3173 2816 0963 1859 
  801:   5024 4594 5534 6908 3026 4252 2308 2533 4468 5035 
  841:   2619 3118 8171 0100 0313 7838 7528 8658 7533 2083 
  881:   8142 0617 1776 6914 7303 5982 5349 0428 7554 6873 
  921:   1159 5628 6388 2353 7875 9375 1957 7818 5778 0532 
  961:   1712 2680 6613 0019 2787 6611 1959 0921 6420 1989