「乱数」とは、サイコロを振ったときに出る目のように、規則性なく無秩序に出現する数値を言います。
サイコロの場合は、1~6の数値がでたらめに(ランダムに)出現しますね。
そして、「一様分布」とは、数値が出現する確率がすべて同じであることを言います。
サイコロでは、1~6の数値が出る確率は、どの数値も 1/6 の確率です。
一様分布に従った乱数を「一様乱数」と呼びます。
Excelには一様分布に従う乱数を返す「RAND」関数 および「RANDBETWEEN」関数 が用意されています。
RAND関数は、0 以上で 1 より小さい実数の乱数を返します。
詳しくは、Microsoftのサポートページ「RAND関数」をご参照ください。
その書式は、次のように引数なしで使います:
RAND()
サイコロの目の場合、1以上 7未満の整数値を発生させるので、次のように求めます:
=INT(RAND()*(7-1)+1)
RAND() は再計算されるたびに異なる数値を返します。
RANDBETWEEN関数は、指定された範囲内の整数の乱数を返します。
詳しくは、Microsoftのサポートページ「RANDBETWEEN関数」をご参照ください。
その書式は、
RANDBETWEEN(最小値, 最大値)
引数の最小値、最大値は、乱数の最小値・最大値を整数で指定します。
サイコロの目の場合、簡単に次のようにして求められます:
=RANDBETWEEN(1,6)
最新の Excelでは、さらに乱数の配列を返す「RANDARRAY」関数もありますが、ここでは省略します。
ご興味ある方は、Microsoftのサポートページ「RANDARRAY関数」をご参照ください。
ところで、上記の RAND関数・RANDBETWEEN関数は「一様乱数」を発生させるものですが、時として「正規分布」に従う乱数が必要な場面が出てきます。
正規分布(normal distribution)(ガウス分布)は、出現する確率が以下のような特徴を持つものです:
- 平均値と最頻値と中央値が一致する
- 平均値を中心にして左右対称である
- x軸が漸近線である
正規分布は、自然界や人間の行動・性質など多くの現象によく当て嵌まる確率分布なので、いろいろな分野で扱われます。
Excelでは「NORM.INV」関数を使います。
(Excel 2007以前のバージョンでは「NORMINV」関数を使います。)
詳しくは、Microsoftのサポートページ「NORM.INV関数」をご参照ください。
その書式は次のようになります:
NORM.INV(確率,平均,標準偏差)
例えば、次のように入力し、10数個のセルにオートフィルすると、3 や 4 のサイコロの目が多く出現するようになります:
=ROUND(NORM.INV(RAND(),3.5,1),0)
引数の「3.5」が“平均値”で、それに続く「1」が“ばらつき度合い”を与えています。
「1」を「0.5」というように小さな値とすると、ほとんど 3 か 4 しか出現しなくなります。
ちなみに、関数を使わないでアドインを使って乱数を発生させることもできます。
[データ]タブに [分析]-[データ分析]機能が見える方はそれをクリックします。
見当たらない方は、[ファイル]-[オプション]-[アドイン]と開き、最下部の「設定」をクリックすると、下図の「アドイン」選択画面が現れます。
「分析ツール」にチェックを入れて「OK」し、続いて現れる「データ分析」画面で「乱数発生」を選択し「OK」します。(下図)
すると、乱数発生の各パラメータの設定画面が現れます。(下図)
「変数の数」は出力する乱数の列数、「乱数の数」は同じく行数です。
あとは所望の分布を選択し、パラメータを設定して出力します。