平方取中法
平方取中法(Middle-square method)是个产生伪随机数的方法,由冯·诺伊曼在1946年提出。
算法:
- 选择一个位数作为种子。
- 计算
- 若不足个位,在前补0。在这个数选中间个位的数,即至的数,将结果作为。
优劣
它并不算很好的方法,因为其周期通常很短,而且有很大的弱点(例如当起始数值是 便不断重复)。不过这些问题很容易察觉,加上它十分快速,适用于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