lectures:乱数
文書の過去の版を表示しています。
−目次
疑似乱数
- 乱数
- でたらめに並んだ数字の列
- サイコロを振る
- 正20面体サイコロ
- 物理現象を利用する
- 放射線、電流のノイズ
- 国勢調査などの中から数字を抜き出す
- 疑似乱数
- ある規則に従って「乱数のようなもの」を作る
- 計算機などを用いて生成した
でたらめに近い数字の列
- 再現性
- 周期性
(一様)疑似乱数
- 乱数の性質のうちいくつかを再現する数列
- それぞれの数が出現する頻度が一様
- (一桁の整数の乱数) 5の次に6が来る頻度は1/10
- (0と1の乱数) 長さn+1の連の個数と長さnの連の個数の比は1/2
- 一部を取り出しても偏りがない。 ⇒ 局所ランダム性
- 一様乱数の発生法
- 線形合同法
- Lagged Fibonacci法
- M系列法
- Mersenne Twister法
線形合同法
線形合同法
- Lehmer, 1948)
Xn=(aXn−1+c)(modM)
乗算合同法
Xn=(aXn−1)(modM)
M | 法 | 0<M |
a | 乗数 | 0<a<M |
c | 増分 | 0<c<M |
X0 | 初期値 | M0<X0<M |
線形合同法の例
- c=0, a=11, M=25=32, X0=1
11∗11(mod32)=1111∗11(mod32)=121(mod32)=2525∗11(mod32)=275(mod32)=1919∗11(mod32)=209(mod32)=1717∗11(mod32)=187(mod32)=2727∗11(mod32)=297(mod32)=99∗11(mod32)=99(mod32)=33∗11(mod32)=33(mod32)=1
- 周期:8
線形合同法の特徴
- 0からM–1の間の整数の乱数を生成する
- n番目の乱数はn–1番目の乱数により決まる
- 最大周期はMである
- 1周期の中に同じ数は2度出てこない
- aとMは互いに素にとらないと充分にデタラメにならない
- 結晶構造になる
Lagged Fibonacci法
Xn=f(Xn−r,Xn−s)(modM)
r, s, M: 整数(r>s)
- Xn=(Xn–r+Xn–s)(modM)
- 周期は最大(2w–1)(2r–1)(wはワード長)
- 連続する乱数の和の分布が正規分布からずれる
M系列法(線形最大周期列法)
- Maximum length linearly recurring sequence
Rn=Rn−p⊕Rn−q
- 周期は2p–1で比較的長い。
- 演算が単純⇒高速
- 結晶構造にならない。
p | q |
---|---|
89 | 38 |
127 | 1, 7, 15, 30, 63 |
250 | 103 |
521 | 32, 48, 158, 168 |
607 | 105, 147, 273 |
Mersenne-Twister法
- 松本-西村 1997
- xn+p=xn+q⊕xn+1B⊕xnA
- A, B ある特別なw×w行列
- p, q はある特別な整数
- 周期は 219937–1
- 623次元空間で均等に分布
分布をもった乱数
指数分布
逆関数法
- {ui} (0≤ui<1): 一様乱数
- xi=−1λlnui
- {xi}: f(x)∝e−λxの指数分布に従う乱数
正規分布
極座標法(Box-Muller 法)
- {ui}, {vi} (0≤ui,vi<1): 一様乱数
- xi=√−2lnuicos(2πvi)
- yi=√−2lnuisin(2πvi)
- {xi}, {yi}: 平均0, 標準偏差1の正規分布に従う乱数
中心極限定理
- {ui} (0≤ui<1): 一様乱数
- xk=(u12k+u12k+1+u12k+2+⋯+u12k+10+u12k+11)−6
- {xi}: 平均0, 標準偏差1の正規分布に従う乱数
lectures/乱数.1661404191.txt.gz · 最終更新: 2022/08/25 14:09 by kimi