平成30年7月

理学部 宮原 慎

乱数とモンテカルロ法


 次のような0と1からなる数列は、何を表しているでしょうか?

      001010011101100110000111

 これは、ミニマル標準乱数生成法に従って作成された乱数列の一例を表します。乱数列とは、ランダムに(規則性がなく)数値を並べた数列のことを表し、今の例では、0と1が規則性なく予測不能な順番で並んでできた数列になっています。サイコロを次々と振って、1~6の出た目を並べてできたような数列も乱数列の一例です。現在では、コンピューターを用いて、乱数列を作成させることができます。ただし、コンピューターで乱数を発生させるときには、何らかの計算規則に従って乱数を発生させる必要があるため、コンピューターで発生させた乱数列は、真の乱数列ではなく、擬似乱数と呼ばれる乱数を近似する数列になっています。最初に述べたミニマル標準乱数生成法というのは、(近似の)乱数列を生成するアルゴリズムの代表例の一つです。

 数値計算の中には、乱数を用いて試行を繰り返すことにより近似値を求める方法があります。こうした乱数を用いた数値計算手法は、一般にモンテカルロ法と呼ばれています。モンテカルロ法という名前は、カジノで有名なモナコ公国にあるモンテカルロにちなんでつけられた名前です。モンテカルロ法の簡単な例として、円周率の近似値を求める方法を紹介しましょう。正方形内に、直径が正方形の辺の長さに等しい円を描きます。正方形内に乱数を用いてランダムに点を発生させ、点が円の中にあるか外にあるかを調べます。点をたくさん打ち、円の中の点と外の点の比を用いることで、円周率の近似値を見積もることができるわけです。点の数を増やしていくことで、より正確な円周率が求まることになります。同じような方法を用いることで、図形の面積や積分の近似値も計算することが可能です。コンピューターの発達に伴いモンテカルロ法は様々な広い分野で利用されるようになってきました。

 皆さんも、乱数やモンテカルロ法の活用法について、考えてみませんか?