円周率を計算する小学生(5月8日・15日の授業風景)

円周率と言ったら3,14を思い浮かべる方がほとんどだと思いますが、それ以降の数値、どれくらい憶えているでしょうか?

今回のお話は、円周率を求めるコードを書きたいと言い出した小学六年生H君ののお話!

ライプニッツの公式で1億回繰り返す(Python)

先日、長期間かけて取り組んでいたprocessingのRPG風鬼ごっこ(以前、プレイヤーのブロックにアスキーアートで顔をつけていた話を紹介 https://www.tento-net.com/blog/diary_2025_12_14)が無事に出来上がったところで、そろそろ違う言語をやろうとなり、Pythonをはじめることになったのですが、「何を作りたい?」と先生が聞いたところ、「円周率を出したい」と言います。実は彼、30桁をそらんじてスラスラ言える人なんです。特に何のこじつけもなく数値として覚えているんだそうですよ。凄いですよね!先生の中には「3.14までしか憶えてないよ」と豪語(?)している人もいたくらいなのに、30桁をなんのきっかけで憶えたのか、それも気になるところです。

まずは、円周率の求め方を調べて、ライプニッツの公式で求めることに決めたようで、早速プログラミングして、1万回繰り返す、100万回繰り返す、1億回繰り返すと増やしていって、円周率の精度を上げていくということをやって、3,1415926まではいけた!と言っていました。

ところが、回数を増やすとPythonはとても重たくなるようで、1億回繰り返すにしたところ、回答が出るまでに時間がかかってしまったのを見て、先生から「processingのほうが早いよ」とのアドバイスが。じゃあ、次回は違う方法でやってみる、と終了しました。

今回はprocessingで作ったよ!

さて、次の回のこと。一所懸命にやっていたのですが、発表の時間にはギリギリ間に合わなかったらしく、発表が終わってみんなが帰りはじめたところに発表会場に入ってきたので、学習記録をつけるように促すと、なぜか今までいたテーブルに戻って、先生も居ないのにそのまま抜けずに居るので、後を追って「学習記録終わった?もしかして、新しいの出来たの?」と聞くと、「processingで作ったよ!」と楽しそうな声色が返ってきて、「じゃあ、せっかくだから、来週みんながいるときに見せてよ」といったのですが、「え~今見てよ!」と、みんな帰っちゃった後で私だけなのに、それでも見せたかったようで、観客は私だけの発表会が始まりました。

今回はニカランサの級数とやらを使ったとかなんとか…ライプニッツやらマチンやらと出てきて、ニカランサの級数で解くと、3.14159まで正しく出るまでの繰り返し回数がライプニッツより全然少ない回数で出るもののようですが、話が難しすぎて、おばさんの頭では憶えられず(汗)うろ覚えで申し訳ない。

このニカランサの級数で求めると、1000万回でも3,14159265までは合っているとのこと。これ以上の桁の正解を求めるのはナカナカ大変なもののようですが、彼としてはまだまだ桁数を上げていきたいと意気込んでいました。

いやあ、小学生がこんなことを考えるとは、つゆとも思い及ばず。こんなに知識を持っていて、さらに、それにチャレンジする彼に脱帽です。

TENTOのおすすめポイント

体験授業ご希望の方はお気軽にお申し込みください。

投稿者プロフィール

株式会社TENTO

プログラミングスクールのパイオニア・プログラミング教育15年のTENTO