SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


lectures:乱数

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
lectures:乱数 [2022/08/25 14:09] – [Lagged Fibonacci法] kimilectures:乱数 [2022/08/25 14:32] (現在) – [線形合同法の特徴] kimi
行 67: 行 67:
   * 結晶構造になる   * 結晶構造になる
  
-{{:lectures:rand.png?240|}}{{:lectures:drand.png?240|}}+=== 実数の一様乱数 === 
 +  * $[0, M–1]$の乱数$\{x_i\}$を$[0, 1)$の乱数$\{u_i\}$に変換 
 +    * $ u_i = \displaystyle\frac{x_i}{M}$ 
 + 
 +例)$c = 0$, $a = 177$, $M = 2^15$, $X_0 = 1$ 
 +^  $n$  ^  $x_n$  ^  $u_n$  ^ 
 +|  0|    1|  0.00003051758 
 +|  1|  177|  0.00540161133 
 +|  2|  31329|  0.95608520508 
 +|  3|  7441|  0.22708129883 
 +|  4|  6337|  0.19338989258 
 + 
 +=== 線形合同法の実装系 === 
 +  * $X_n = (aX_{n–1} + c) \pmod M$ 
 +  * ''rand''(cの元標準乱数) 
 +    * $a=1103515245$, $c=12345$, $M=2^{31}$ (BSD) 
 +  * ''drand48''(''rand''の代替標準乱数) 
 +    * $a=25214903917$, $c=11$, $M=2^{48}$ 
 + 
 +^  $2^{31}$個発生させ、2個ずつペアにして$x$-$y$座標としてプロット  ^^ 
 +|{{:lectures:rand.png?240|}}|{{:lectures:drand.png?240|}}
 +|  ''rand()''    ''drand48()''   | 
 +|   $M=2^{31}$  |   $M=2^{48}$ 
 +|  周期:$2^{31}$  |  周期:$2^{48}$  |
 ===== Lagged Fibonacci法 ===== ===== Lagged Fibonacci法 =====
 $$X_n=f(X_{n-r}, X_{n-s}) \pmod M$$ $$X_n=f(X_{n-r}, X_{n-s}) \pmod M$$
行 73: 行 96:
 $r$, $s$, $M$: 整数($r>s$) $r$, $s$, $M$: 整数($r>s$)
  
-  * $X_n = (X_{n–r} + X_{n–s}) \pmod M$ 
     * 周期は最大$(2^w–1)(2^r–1)$($w$はワード長)     * 周期は最大$(2^w–1)(2^r–1)$($w$はワード長)
     * 連続する乱数の和の分布が正規分布からずれる     * 連続する乱数の和の分布が正規分布からずれる
  
 +==== Lagged Fibonacci法の実装系 ====
 +  * ''random''(Cの現標準乱数)
 +  * $X_n = (X_{n–r} + X_{n–s}) \pmod M$
  
-{{:lectures:random.png?240|}}+|{{:lectures:random.png?240|}}
 +|  $r=31$, $s=28$, $M=2{31}$ 
 +|  周期:$\sim 2^{62}$  |
 ===== M系列法(線形最大周期列法) ===== ===== M系列法(線形最大周期列法) =====
   * Maximum length linearly recurring sequence   * Maximum length linearly recurring sequence
lectures/乱数.1661404191.txt.gz · 最終更新: 2022/08/25 14:09 by kimi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki