平方取中法

来自testwiki
跳转到导航 跳转到搜索

平方取中法Template:Lang)是個產生偽隨機數的方法,由-{zh-hans:冯·诺伊曼;zh-hk:馮·紐曼;zh-tw:馮·諾伊曼;}-在1946年提出。

算法:

  1. 選擇一個m位數Ni作為種子。
  2. 計算Ni2
  3. Ni2不足2m個位,在前補0。在這個數選中間m個位的數,即10m2+110m2+m的數,將結果作為Ni+1

優劣

它並不算很好的方法,因為其週期通常很短,而且有很大的弱點(例如當起始數值是k×10m便不斷重覆)。不過這些問題很容易察覺,加上它十分快速,適用於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

...

参见

Template:Crypto-stub