平方取中法

维基百科,自由的百科全书
跳转至: 导航搜索

平方取中法Middle-square method)是個產生偽隨機數的方法,由冯·诺伊曼在1946年提出。

算法:

  1. 選擇一個m位數N_i作為種子。
  2. 計算N_i^2
  3. N_i^2不足2m個位,在前補0。在這個數選中間m個位的數,即10^{\lfloor m/2 \rfloor}10^{\lfloor m/2 \rfloor+m}的數,將結果作為N_{i+1}

優劣[编辑]

它並不算很好的方法,因為其週期通常很短,而且有很大的弱點(例如當起始數值是k \times 10^m便不斷重覆)。不過這些問題很容易察覺,加上它十分快速,適用於ENIAC,不無可取之處。

例子[编辑]

  1. 675248 → 455 959 861 504
  2. 959861 → 921 333 139 321
  3. 333139 → 110 981 593 321
  4. 981593 → 963 524 817 649
  5. 524817 → 275 432 883 489

...