円周率の日といえば

今日は円周率の日です。しかし、中国では昔の中国人が22/7が円周率に近いと発見したことから7月22日を円周率の日としてるようです。

(22/7 - 3.14159265 = 0.00126449285、3.14159265 - 3.14 = 0.00159265で22/7の方が誤差が小さい)

ところでみなさんは円周率をどうやって1000桁も計算できるか知ってますか?もちろん円を描いて円周の長さを測って直径で割るなんて方法じゃありません笑。その方法で1000桁も精度よく測ることはまず不可能です。手で正確な円を描くことはできないので当たり前です。

ではどうやるのかというと

  • 直径1の円に内接する正1000000…0000角形の周の長さで近似
  • 三角形を利用(僕考案)
  • ガウスルジャンドル法(最速)

などがあります。他にもwikiみるといろんな人が色々な方法考案してます。

まず正n角形の周の長さの測り方から見ていきましょう。

正n角形の周の長さ

直径1の円に内接する正n角形の周の長さは以下のような手順で求めます。

  1. 正n角形を外接円の中心からそれぞれの頂点へ引いた直線で三角形に分割
  2. 三角形の頂角はわかるので余弦定理で底辺の長さを求める
  3. 底辺×三角形の個数 が正n角形の周の長さ

こんな感じです。例えば正方形なら

  1. 4つの三角形に分割
  2. それぞれの頂角は90度(360/4)だから余弦定理で底辺は√2とわかる
  3. 4コ × √2 = 4√2が正方形の周の長さ

ちょい待てよ、正5角形なら頂角は72度でcos72°はわからねえじゃねえか、と反論が聞こえます。その通りです。しかし、今回の目的はnをどんどん大きくしていく事です。

そして、二倍角の定理を駆使すればcos90°から頂角が90/2mの角度ならcosを求める事ができます。つまり正2m角形(mは2以上の整数)なら周の長さを求める事ができます。そしてmを大きくしていけば正∞角形の周の長さが求まります。

三角形を使う

先の方法とは少し違う方法です。まず斜辺が1の直角二等辺三角形を用意します。そして直角でない方の角をどっちでもいいので2等分しまくります。というか面倒なので僕のブログ読んで。

まあなんやかんやして二等分した角の対辺の長さ(=sinx)を求め続けて行って、そうするとlim n→∞ sinx/x = 1を利用して何等分かした円周が近似できるからなんたら面倒

ガウスルジャンドル

こらが一番早いです。すごい勢いで収束します。上2つとは比較になりません。そしてなぜ収束するのか僕はよく分かってません。頭のいい東北大生教えてください。

円周率とかいうクソは死んでどうぞ