円周率が3.05よりも多いことをプログラムで証明する

はじめに

「円周率が3.05よりも大きいことを証明せよ」という問題は、
東大入試で出題されたことがある良問として有名だと思います。

自分はそれのよくある解法などは知らないのですが、
プログラムに計算させることで示すことができそうだったのでやってみました。

証明のアイデア

円周率は円の面積や周を計算する際に使われる定数です。
今回は面積の方に着目して見たいと思います。

半径1の円に内接する正多角形の面積について考えます。
この多角形の面積は常に円の面積よりも小さくなります。
ということで、多角形の角数 n を大きくすることで、
正多角形の面積を円の面積に近づけつつ、
これが 3.05 よりも大きくなることを証明しようと思います。

計算方法

正多角形の角数を n として正多角形の面積は n 個の
三角形の面積の和であることがわかると思います。

正n角形に含まれる三角形はもちろん n 個です。
1つの三角形の面積は円の中心の角をθとすると
1 * 1 * sin(θ) / 2 と表すことができます。

あとはこの三角形の面積をn倍することで正多角形の面積を算出します。

ソースコード

今回は Pythonソースコードを書きました。

import math

def area_regular_polygon(n):
    theta = math.radians(360.0 / n)
    return n * 0.5 * math.sin(theta)

if __name__ == '__main__':
    
    for n in range(3, 20):
        print(n, area_regular_polygon(n))

思ったよりもかなり短いソースコードで済みました。

実行結果

実行結果は以下のようになります。

3 1.299038105676658
4 2.0
5 2.3776412907378837
6 2.598076211353316
7 2.7364101886381045
8 2.82842712474619
9 2.892544243589427
10 2.938926261462366
11 2.9735244960057865
12 2.9999999999999996
13 3.0207006182844958
14 3.037186173822907
15 3.0505248230685016
16 3.0614674589207183
17 3.0705541625908
18 3.0781812899310186
19 3.084644957444493

正15角形の面積が3.05よりも大きいので、
円周率も3.05より大きいことが証明できました。

さいごに

今回はプログラムを使って東大入試の証明に挑戦しました。
プログラムだから証明できたのはいいのですが、
紙とペンでも証明する方法を調べてみたいと思います。