首页 > 编程知识 正文

Python 生成随机数,伪随机数生成工具

时间:2023-05-05 19:11:59 阅读:119874 作者:2169

提示:

python-伪随机数发生器

首先说明随机数和随机数发生器:

随机数来自现实生活通过掷硬币、骰子、车轮、电子部件噪音、核裂变等物理现象产生。

产生这些随机数的方法有很多种,但产生这些随机数的方法被称为随机数生成器。 由上述物理现象产生的随机数发生器称为物理随机数发生器。

对计算机来说,真正随机是极其困难的。

所以通常是伪随机数

由固定算法实现的,可以有规律地遵循,不能实现真正的“随机”,但具有随机数一样的统计特征。

线性同余法

的rand函数和JAVA的java.util.Random类是使用上述算法实现的

a称为乘数,b称为增量,(end-start )称为模量,都是常数。

然后,设置rOld=rNew,通常要求用户指定种子数rold (也称为seed )。 当然,可以自由选择a和b,但如果不能很好地选择两个数,可能会影响数字的随机性,因此一般指令:

a=32310901

b=1729

这将使生成的随机数最均匀。

defmyrandint (开始,结束, seed=999999999 ) : a=32310901 #生成的随机数的最均匀的b=1729 rold=seedm=end-startwhiletrue 3360 )每个生成一次随机数,因此rew 惯性评估yield关键字以暂停生成器函数的执行,并将yield关键字后的表达式的值返回给生成器调用方。 可以将它视为基于生成器的版本的return关键字。 rOld=rNew#模拟使用20个不同的种子,每个随机数forIinrange(20 ) :r=myrandint(1,10000,I ) #种子10个随机数print ' ' 否则,每次都会有同样的结果。

多以系统时间为种子实现该算法。 上述代码只需将seed设定为系统时间即可实现。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。