![]()
| πって昔から人間を魅了してきたようです。ちなみにπってギリシャ語の"周"を表す語の頭文字だそうです。(περιφερεια:ペリフェレイア) で、πの計算の歴史ですが、 アルキメデスの時代は小数点以下2桁つまり3.14 彼は3+10/71<π<3+1/7 つまり、3.1408・・・<π<3.1428・・・ としています。 ルドルフ・ファン・コーヘンが17世紀初頭に35桁 日本では関孝和が11桁まで求めていました。 18世紀初頭にはアブラハム・シャープが71桁 18世紀末にはバロン・ベガが136桁 19世紀末になるとウィリアム・シャンクスが527桁 そして、1999年4月で687億桁、1999年中には1000億桁になっているのでは。 πを計算して見よう! 今は、パソコンで簡単に計算できるから、プログラムを書いて見ました。興味ある人は実行して見てください。私のパソコンで十進ベーシック(十進1000桁)を使って0.7秒弱で998桁まで計算できました。 なお、十進ベーシックは http://hp.vector.co.jp/authors/VA008683/ で入手できます。 で、使う式ですが(arctanはtanの逆三角関数) π/4=4×arctan(1/5)-arctan(1/239) arctan(x)=x-x3/3+x5/5-x7/7+…… これは、J.Machin(1680-1752)の公式と呼ばれているものです。 100 ! πの計算 110 LET t0=time 120 LET L1=1 130 LET p=0 140 LET k=1 150 LET t=4*4/5 160 do while (p<>L1) 170 LET L1=p 180 LET p=p+t/k 190 LET t=-t/(5*5) 200 LET k=k+2 210 loop 220 LET L2=1 230 LET q=0 240 LET k=1 250 LET t=4/239 260 do while (q<>L2) 270 LET L2=q 280 LET q=q-t/k 290 LET t=t/(-239*239) 300 LET k=k+2 310 loop 320 LET x=L1+L2 330 print x 340 PRINT time-t0;"秒かかりました" 350 END (2005.5.13 追加) もっと、すごい方法がありました。金田グループが採用している方法だそうです。 十進1000桁を使用して以下のプログラムを走らせて見てください。 そのすごさがわかります。 ちなみに、 n=1で 2桁 n=2で 7桁 n=3で 18桁 n=4で 40桁 n=5で 84桁 まで正確に出ます。 n=9で約1000桁 パソコンでは無理ですがn=19 で100万桁を超えるそうです。 ! ガウス・ルジャンドルによる算術幾何平均に基づく方法 INPUT PROMPT "ループ回数=?":n ! 千桁に指定する。 n>10では千桁を超える LET a=1 LET b=1/sqr(2) LET c=1/4 LET x=1 for i=1 to n LET y=a LET a=(a+b)/2 LET b=sqr(b*y) LET c=c-x*(a-y)^2 LET x=2*x next I PRINT (a+b)^2/(4*c) END |