正規乱数/Box–Muller 法

Box–Muller 法は、互いに独立な (0, 1) 上に一様分布する2つの確率変数 X, Y から、標準正規分布に従う互いに独立な2つの確率変数 Z1, Z2 を生成する方法。

Z1 = sqrt( -2 * ln( X ) ) * cos( 2 * PI * Y )
Z2 = sqrt( -2 * ln( X ) ) * sin( 2 * PI * Y )

参考:

正規乱数 (乱数列) – Wikipedia

ボックス=ミュラー法 – Wikipedia

ボックス=ミュラー法 (正規乱数の生成) の証明 | 高校数学の美しい物語

Box-Muller 法による正規分布列生成 – Qiita

C# でボックスミューラー法による正規分布に従う乱数生成 | 真実の楽譜

Box-Muller 法で正規分布する乱数を生成する | blog.PanicBlanket.com

乱数列

参考:

乱数列 – Wikipedia

擬似乱数

参考:

擬似乱数 – Wikipedia

線形合同法 (Linear congruential generators / LCG)

Park & Miller
x_(n+1) = ( 48271 * x_(n) ) % (2^31 - 1)

参考:

擬似乱数の話/線形合同法 – Qiita

線形合同法 | Algoful

乱数発生方法と線形合同法のメモ | はしくれエンジニアもどきのメモ

線形合同法の周期 | tsujimotter のノートブック

線形合同法のパラメータを乱数列から求めてみる | みつの CTF 精進記録

線形合同法 – Wikipedia

メルセンヌ・ツイスタ (Mersenne Twister)

参考:

メルセンヌ・ツイスタをわかった気になる | 6715.jp

メルセンヌ・ツイスタについてちょっとだけ真面目に解説する記事/線形合同法と LFSR – Qiita

メルセンヌツイスタはそんなに衝突しない – Qiita

メルセンヌ・ツイスタ – Wikipedia

Mersenne Twister – A Random Number Generator | 松本 眞

Mersenne Twister with Improved Initialization (mt19937ar) | 松本 眞

暗号論的擬似乱数生成器

参考:

暗号論的擬似乱数生成器 – Wikipedia

ノンス/ナンス (Nonce)

参考:

ノンス – Wikipedia

解析

参考:

良い乱数/悪い乱数 | 和田維作

悪い乱数のリスクを視覚的に明らかにする | 和田維作

実装

参考:

乱数の仕組み – Qiita

乱数について本気出して考えてみる | TechRacho

C言語による乱数生成 | 近江崇宏 (omitakahiro.github.io)

メルセンヌ・ツイスタの C# / C++ ポート | C++マニアック

乱数らしさ

参考:

偏りがあるように思わせない (偏った) 乱数生成 | 北陸先端科学技術大学院大学 情報科学研究科 池田研究室

シャッフル

  • Fisher–Yates シャッフル

参考:

Fisher-Yates Shuffl アルゴリズムを用いて自作で配列をシャッフルさせる – Qiita

シャッフルした結果が偏ると相談を受けたときに確認すること | yoheimuta

そのシャッフル、本当にシャッフルですか?何気ない落とし穴にハマった話 | BASE プロダクトチームブログ

Fisher-Yates アルゴリズム – 世界最速の配列シャッフルアルゴリズム | Panda Noir

Fisher-Yates のシャッフルアルゴリズムをC言語で実装してみる | IT を使っていこう

ランダムシャッフル | Programming Place Plus

ランダムに配列をシャッフルする Fisher-Yates Shuffle アルゴリズム を理解した | 3匹の猫

フィッシャー・イェーツのシャッフル – Wikipedia

Fisher–Yates Shuffle – Wikipedia

資料

あなたの使っている乱数、大丈夫? (PDF) | 松本 眞

記事をシェアする:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA