円周率 π のお話

円周率って学校の授業では 3.14 と習うと思います。実際のより正確な値は

3.14159265358979323846264338327950288 ...

となり、小数点以下の桁が無限に続く値(無理数)です。

小数点以下が無限に続く数をいちいち書くのは面倒なので、
記号で「π」(パイと読みます)を使って表現します。

今回は円周率がどうして 3.14 なのかを解説したいと思います。

そもそも円周率って何?

円周率とは、半径 r の円の直径と円周の長さとの比を表しています。
例えば、半径 が 10cm の円の円周の長さは、

10cm * 2 * 3.14 ≒ 62.8 cm

として求めることができます。

では、なぜ円周の長さと直径の比が 3.14 なのか?
それを探っていきましょう。

六角形の外周はいくつ?

円の外周を考える前に、まず六角形の外周の長さを考えてみます。

円に各頂点がぴったりくっついた六角形です。
ちなみに、このとき六角形は円に内接すると言います。
六角形の各頂点を補助線を引いて結んでみます。

補助線はすべて直径と同じ長さになります。そして補助線は円の中心で交ります。

円の中に6つの三角形ができています。
三角形の頂点のそれぞれ角度(θ)は、360 度を 6 等分しているので 60 度です。
また、頂点を挟む二辺は半径 r と同じ長さです。
つまり、頂点の角度が 60 度、頂点を挟む二辺の長さが r の二等辺三角形です。

二等辺三角形の定義から、底角の角度は同じなります。
頂点が 60 度ということは、三角形の内角の和は 180 度ですから、

(180 - 60) / 2 = 60

底角の角度は 60 度になることがわかるので、
この三角形は実は一辺の長さが r である正三角形であることがわかります。

したがって円に内接する六角形の辺の長さの合計は 6r となります。
このとき、円の直径が 2r なので、

円の直径と六角形の辺の合計の比は、3 です。

ここで、

円周率とは、半径 r の円の直径と円周の長さとの比

のことでした。
つまり円周率が 3 だとすると、六角形の辺の長さになるわけです。

六角形と円ではだいぶ見た目が違いますよね?
六角形と円を同じだと言う人はいないと思います。
でもだいぶ円には近い気もしますよね?

じゃあ角数を増やしてみよう

円に内接するこの六角形は円にはまだ遠いですけど、結構いい線いってました。
この六角形をもっと角数を増やしていったら、一体どうなるでしょうか?
20角形、100角形、1000角形と角数を増やしていったら、
比率はどうなっていくでしょう。

手計算でやっていくのは大変なのでコンピューターに計算させましょう。

(define (ratio-of-side-length-to-radius r n)
  (let* ((top-angle (/ 360 n))
         (base-angle (- 180 90 (/ top-angle 2)))
         (side-length (* 2 r (cos (degrees->radians base-angle)))))
    (/ (* n side-length) (* 2 r))))

こんなプログラムになります。
ratio-of-side-length-to-radius 手続きは、引数 r に半径を、n に内接する正 n 角形の角数を与えます。


cos とか使うとラジアン(弧度法)が出てくるのでπとか出てきてしまうのですが、
πを求めてみるというお話なので弧度法の細かい内容は省いています。
degrees->radians という手続きを使用して、度数をラジアンに変換してごまかしていますw


まず六角形の辺の長さの比率を求めてみます。

gosh> (ratio-of-side-length-to-radius 1 6)
3.000000000000001

ちょっと誤差が出ていますが、3 なので合ってます。

では、角数を増やしてみましょう。

gosh> (ratio-of-side-length-to-radius 1 10)
3.0901699437494745
gosh> (ratio-of-side-length-to-radius 1 20)
3.1286893008046186
gosh> (ratio-of-side-length-to-radius 1 50)
3.139525976465665
gosh> (ratio-of-side-length-to-radius 1 100)
3.141075907812817
gosh> (ratio-of-side-length-to-radius 1 1000)
3.141587485879651
gosh> (ratio-of-side-length-to-radius 1 10000)
3.141592601913971
gosh> (ratio-of-side-length-to-radius 1 100000000)
3.1415926588122183

一億角形まで計算してみました。比率はどうでしょうか?
n の値が増えていくと、見覚えのある数字が出てきていませんか?

そうです。πが現れます。

内接する正n角形の角数をどんんどん増やしていくと、正n角形はどんどん円に近づいていきます。
直径と正n角形の辺の長さは、n を増やせば増やすほど π に近似していきます。
図を書くのはとても大変ですが、どんどん円になっていきそうだなって想像できますよね?


では n をとても大きい数、∞(無限)に近づけていったら果たしてどうなるでしょう。
円の中にできる三角形の頂点θはどんどん小さな値になっていきます。でも0にはなりません。
三角形の底辺もどんどん小さな値になっていきます。でも0にはなりません。
三角形の底角はどんどん90度に近づいていきますが、90度にはなりません。
三角形自体もどんどん潰れて細くなっていきますが、どこまで行っても二等辺三角形です。
そのとき、直径と正n角形の辺の合計(=外周)の比率はπに限りなく近づいていきます。


そこまでいくと、もはや人間には正多角形なのか円なのか区別はつかないでしょう。
円は正∞角形である。
と言い換えても良いかも知れません。


というわけで、
円周率はπ (3.1415 ...)である
ことがわかりました。
今回のように π の値をいちいち計算で求めなくても、
π の値はわかっているので、円の円周の長さ計算したいときは、直径に 3.1415 ... を掛け算すれば良いわけです。


これは円周率を求める計算方法のひとつで、他にもたくさんの計算方法があります。
興味があったら調べてみてください。