2018/12/24 23:02

次回 (2019年 1月) の課題予定に「乱数で円周率を推定する」という課題が入っています。本プロジェクト、本企画、本企画の母体の講習会がどういう感じなのかをこの例で簡単に説明します。

まず、円周率を求めたいという問題があります。これは代数的にも幾何学的にも求められますが、ここではシミュレーションを通して求めることにします。

さてシミュレーションでどのように求めたらいいのでしょうか? まずは、πが含まれている式をともかく書き出します。この過程は、実はなくてもかまいません。あった方がわかり易いのでいれています。

さて、その式を、 "π = なんとか" となるように変形します。この段階で、あるいはそれ以前から、正方形と円、あるいは正方形と四分円の面積の関係が見つかります。面積ということであれば、正方形と円、あるいは正方形と四分円をいくつかの区画に分割するという方法が見つかります。

ここで乱数の出番です。縦横を仮にそれぞれ10分割し、計100個の区画に分けることとし、10面のサイコロを何回も振って、どの区画に入ったかを数えます。この過程で、円の中に入る場合と、円からは外れて外接する正方形には入る場合があります。円の中に入った回数と、円の中に入った回数+円からは外れ外接する正方形に入った回数から、円周率が推定できるわけです。

ここでは10面ダイスを使いますが、これは一様な出目であることが期待されます。仮に6面ダイス2個の出目の合計を使うなどとなると、一様な出目にはならないことが期待されます。そこで、なぜ一様な出目であることを期待するのでしょうか。このあたりで乱数の性質についての話になります。

また、得られる推定値はそれほど精度のいいものではありませんが、それはなぜなのか、そしてこの手法で得られる理想的な精度はどれくらいであり、その精度はどうしてそう言えるのかという話になります。また、シミュレーションにおける「理想的な結果」とはどういうものかにも触れます。

このように体験を通して理解できることを目指しています。現在用意してあるテキストには上記の内容や手順が書かれています。

なお、いろいろな定数や計算結果について、簡単ながらもいい精度を得られる計算方法がある場合もあります。円周率の場合 "355 / 113" が有名で、誤差が10^(-6) くらいの精度を持つ結果が得られます。 こういうものを求めるためにはまた別の知識が必要になるので、これについては "355 / 113" を紹介する程度に留めますが