Processing math: 100%
SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


lectures:乱数

文書の過去の版を表示しています。


疑似乱数

乱数
でたらめに並んだ数字の列
  • サイコロを振る
    • 正20面体サイコロ
  • 物理現象を利用する
    • 放射線、電流のノイズ
  • 国勢調査などの中から数字を抜き出す
疑似乱数
ある規則に従って「乱数のようなもの」を作る
計算機などを用いて生成した
でたらめに近い数字の列
  • 再現性
  • 周期性

(一様)疑似乱数

  • 乱数の性質のうちいくつかを再現する数列
    • それぞれの数が出現する頻度が一様
    • (一桁の整数の乱数)
5の次に6が来る頻度は1/10
    • (0と1の乱数)
長さn+1の連の個数と長さnの連の個数の比は1/2
    • 一部を取り出しても偏りがない。
 ⇒ 局所ランダム性
  • 一様乱数の発生法
    • 線形合同法
    • Lagged Fibonacci法
    • M系列法
    • Mersenne Twister法

線形合同法

線形合同法

  • Lehmer, 1948)

Xn=(aXn1+c)(modM)

乗算合同法

Xn=(aXn1)(modM)

M0<M
a乗数0<a<M
c増分0<c<M
X0初期値M0<X0<M

線形合同法の例

  • c=0, a=11, M=25=32, X0=1

1111(mod32)=111111(mod32)=121(mod32)=252511(mod32)=275(mod32)=191911(mod32)=209(mod32)=171711(mod32)=187(mod32)=272711(mod32)=297(mod32)=9911(mod32)=99(mod32)=3311(mod32)=33(mod32)=1

  • 周期:8

線形合同法の特徴

  • 0からM1の間の整数の乱数を生成する
  • n番目の乱数はn1番目の乱数により決まる
  • 最大周期はMである
  • 1周期の中に同じ数は2度出てこない
  • aMは互いに素にとらないと充分にデタラメにならない
  • 結晶構造になる

Lagged Fibonacci法

Xn=f(Xnr,Xns)(modM)

r, s, M: 整数(r>s

  • Xn=(Xnr+Xns)(modM)
    • 周期は最大(2w1)(2r1)wはワード長)
    • 連続する乱数の和の分布が正規分布からずれる

M系列法(線形最大周期列法)

  • Maximum length linearly recurring sequence

Rn=RnpRnq

  • 周期は2p1で比較的長い。
  • 演算が単純⇒高速
  • 結晶構造にならない。
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+qxn+1BxnA
    • A, B ある特別なw×w行列
    • p, q はある特別な整数
    • 周期は 2199371
    • 623次元空間で均等に分布

分布をもった乱数

一様分布 指数分布 正規分布

指数分布

逆関数法

  • {ui} (0ui<1): 一様乱数
  • xi=1λlnui
  • {xi}: f(x)eλxの指数分布に従う乱数

正規分布

極座標法(Box-Muller 法)

  • {ui}, {vi} (0ui,vi<1): 一様乱数
  • xi=2lnuicos(2πvi)
  • yi=2lnuisin(2πvi)
  • {xi}, {yi}: 平均0, 標準偏差1の正規分布に従う乱数

中心極限定理

  • {ui} (0ui<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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki