「ランダム性」を理解する 質問する

「ランダム性」を理解する 質問する

よく分かりません。どちらがよりランダムなのでしょうか?

rand()

または

rand() * rand()

本当に頭の体操になる問題だと思うのですが、助けていただけませんか?


編集:

数学的な答えは、どちらも同じようにランダムであるということだと直感的に分かっていますが、2 つを掛け合わせるときに「乱数アルゴリズムを 2 回実行」すると、1 回だけ実行した場合よりもランダムなものが作成されるのではないかと思わずにはいられません。

ベストアンサー1

ちょっと説明

疑似乱数変数またはその乗算のランダム性を見つけようとするときは、前の回答が正しいのですが、Random()は通常均一に分布しますが、Random() * Random()はそうではないことに注意する必要があります。

これは一様ランダム分布標本疑似乱数変数によるシミュレーション:

ランダムヒストグラム()

        BarChart[BinCounts[RandomReal[{0, 1}, 50000], 0.01]]

これは 2 つのランダム変数を乗算した後に得られる分布です。

Random() * Random() のヒストグラム

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] * 
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

つまり、どちらも「ランダム」ですが、その分布は非常に異なります。

もう一つの例

2 * Random()は均一に分布しています:

2 * Random() のヒストグラム

        BarChart[BinCounts[2 * RandomReal[{0, 1}, 50000], 0.01]]

Random() + Random() はそうではありません!

Random() + Random() のヒストグラム

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] + 
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

中心極限定理

中心極限定理Random()の合計は、正規分布条件が増加するにつれて。

たった 4 つの用語で次のようになります。

Random() + Random() + Random() + Random() のヒストグラム

BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000] +
                   Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000],
                   {50000}],
         0.01]]  

ここでは、1、2、4、6、10、20 個の均一に分布したランダム変数を加算することで、均一分布から正規分布への道を見ることができます。

追加されたランダム変数の数の異なるヒストグラム

編集

いくつかのクレジット

感謝トーマス・アーレ最後の2つの画像に示されている確率分布は、アーウィン・ホール分布

感謝平家彼女の素晴らしいtorn[]関数

おすすめ記事