随机数算法

时间:2015-08-05 05:25:39

标签: python algorithm random

我需要在组中生成随机数:100,500,1000和10000个号码的制服和高斯。这对于创建一些直方图和其他统计信息是必要的。

条件不是使用python的本机随机函数,所以我想使用这种方法(线性同余生成器):Xn+1 ≡ (aXn + c) mod m。这里我需要4个变量。 有人可以告诉我如何实现这个算法?我假设第一次 m 变量 100

1 个答案:

答案 0 :(得分:2)

你已经知道这是Linear congruential generator,所以很难读懂它?

它会告诉您已知的公式enter image description here以及如何选择它们的说明:

  

一般LCG的时间段最多为m,并且对于某些选择   因素远低于此。假设偏移量c非零,   当且仅在以下情况下,LCG将对所有种子值有一个完整的期限:

     

1)c和m是相对素数

     

2)a - 1可被m

的所有素因子整除      

3)如果m是4的倍数,则a - 1是4的倍数。

他们甚至在下表中给出了一些这些值的例子。这足以实现一个简单的功能:

wget --mirror
相关问题