平方取中法

平方取中法()是個產生偽隨機數的方法,由馮·諾伊曼;}-在1946年提出。

算法:

選擇一個m位數N_i作為種子。

計算N_i^2

若N_i^2不足2m個位,在前補0。在這個數選中間m個位的數,即10^{\lfloor \frac{m}{2} \rfloor + 1}至10^{\lfloor \frac{m}{2} \rfloor + m}的數,將結果作為N_{i+1}。

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

例子

675248 → 455 959 861 504

959861 → 921 333 139 321

333139 → 110 981 593 321

981593 → 963 524 817 649

524817 → 275 432 883 489

...

参见

  • 線性同餘方法
  • Blum Blum Shub

评论 (0)

  • 还没有评论,来抢沙发吧。