まずは緑の旗を押してみよう!
https://scratch.mit.edu/projects/169002230/
ネコは円周率が3.1415・・・だということを知りません。でもとっても頑張って1000個の点を打って大体の円周率の値を求めました。
ネコはどうやったのでしょうか?
実はネコは「乱数」を使ったのです。ここでは「らむだ」でなく「らんすう」と読みます。
サイコロを振ったとき、次にどの目が出るかわかりますか?わかったらあなたはエスパーあるいはサイコロに不正が仕組まれている可能性が・・・
乱数とはサイコロを振った時の目のように、次の数が分かりません。ペンギンの描いた正方形の中に、ネコは乱数を発生させて、ランダムな位置に点を打っています。
おっと「ランダム」とは次に何が起こるかわからない、先が読めないってことを意味します。
ペンギンは正方形にすっぽり入る円も描きました。この円の中にいくつ点が打たれたかを調べると、あら不思議、ネコはだいたいの円周率の値がわかってしまうのです。
ネコもちょっとだけ算数のお勉強をしたので、円の面積がπr2(円周率×半径×半径)だということは知っています。正方形の面積が辺の長さの2乗だということも。
ここからは計算してみましょうね。
円の半径をrとします。正方形の一片の長さは2rですね。rを使って、正方形の面積と、円の面積は求まりますね。
プログラムでネコに正方形の中に1000個点を打たせます。このうちいくつ円の中に打たれたか数えます。
例えば全部で1000個点を打った時、円の中に779個あったとします。この二つの数を使ってネコは円周率を求めているんですね~
全部でa個、円の中にb個点があったとして、ネコはどんな式で、だいたいの円周率の値を求めたのか考えましょう!!
これモンテカルロ法といいます。Scratchでも何でもいいので、実際プログラムを作ってみましょう。1000個でなく10000個にするとどうなるかな?ネコ疲れる!確かに~