随机数生成器Python,python如何生成随机数
提示:
Python-伪随机数生成器
首先,描述随机数和随机数发生器:
现实生活中的随机数是由抛硬币、骰子、轮子、电子元件噪音、核裂变等物理现象产生的。
产生这些随机数的方法有很多种,但是产生这些随机数的方法叫做随机数生成器。由上述物理现象产生的随机数发生器称为物理随机数发生器。
计算机很难做到真正的随机。
所以一般是伪随机数。
固定算法实现的东西是有规律可循的,不可能是真正的“随机”,但它和随机数具有相同的统计特性。
线性同余法
Rand函数和JAVA的java.util.Random类都是用上面的算法实现的。
a叫乘数,B叫增量,(end-start)叫模数,都是常数。
然后,设置rOld=rNew,这通常需要用户指定种子号rOld(也叫seed)。当然,你可以自由选择A和B,但如果不能很好地选择两个数,可能会影响数字的随机性。因此,一般说明是:
a=32310901
b=1729
这将使生成的随机数最均匀。
Defmyrandint (start,end,seed=9999999): a=32310901 #最均匀生成的随机数b=1729 rold=SEEDM=end-startwhiletrue 3360)每次生成一次随机数,所以rew inertia对yield关键字求值以暂停生成器函数的执行,并返回yield关键字后表达式的值。可以把它看作基于生成器的版本的return关键字。ROld=rNew#模拟使用20个不同的种子,每个随机数for iinrange(20):r=myrandint(1,10000,I) # seeds 10个随机数print ,否则每次都会有相同的结果。
算法以系统时间为种子实现。上述代码只需将seed设置为系统时间即可实现。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。