C语言用rand产生的是伪随机数么
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/05/03 22:49:09
C语言用rand产生的是伪随机数么
是的.rand生成的数,只要种子是确定的,生成的随机数就是确定的.同一个种子生成的随机数之间是有关系的,并不是独立的.
再问: 种子选为time(NULL)也是伪随机么?
再答: 给一个种子,可以生成一系列的随机数。但是这些随机数之间是有关系的。 如果每个种子,只生成一个随机数(就是选一个种子,生成一个随机数,再选别的种子,再生成一个随机数——也就是每个种子只用一次),那这个随机数就更“随机”,但是,这个“随机”数的根本原因,不是rand函数,而是种子本身在某种程度上是随机的! 更换种子可以提高随机性,但是仍然是伪随机的。 比如某个循环语句里面,重复执行随机数生成函数,那么执行相邻两次操作的时间有可能是个固定的常数,对吧?那么,假如第一次用time(NULL)生成的种子被人知道后,之后用time(NULL)生成的种子也不是随机的,因为可以人为地推算出来下次的种子是什么,对吧? 如果连种子都能被推算出来,那就谈不上随机数了。 软件是实现不了真随机的,只能用硬件来实现,通过温度、湿度、压强、电压等等物理量影响硬件电路来获得随机的效果。
再问: 种子选为time(NULL)也是伪随机么?
再答: 给一个种子,可以生成一系列的随机数。但是这些随机数之间是有关系的。 如果每个种子,只生成一个随机数(就是选一个种子,生成一个随机数,再选别的种子,再生成一个随机数——也就是每个种子只用一次),那这个随机数就更“随机”,但是,这个“随机”数的根本原因,不是rand函数,而是种子本身在某种程度上是随机的! 更换种子可以提高随机性,但是仍然是伪随机的。 比如某个循环语句里面,重复执行随机数生成函数,那么执行相邻两次操作的时间有可能是个固定的常数,对吧?那么,假如第一次用time(NULL)生成的种子被人知道后,之后用time(NULL)生成的种子也不是随机的,因为可以人为地推算出来下次的种子是什么,对吧? 如果连种子都能被推算出来,那就谈不上随机数了。 软件是实现不了真随机的,只能用硬件来实现,通过温度、湿度、压强、电压等等物理量影响硬件电路来获得随机的效果。
C语言用rand产生的是伪随机数么
C语言rand()函数产生的最大随机数是多少?
C语言rand产生 a-b之间的随机数~谢谢
关于C语言中rand函数的一个简单问题—rand函数产生随机数的范围是?
C语言中的随机数请问rand()函数产生随机数的原理是什么?还有就是产生随机数的总范围是从多少到多少?
EXCEL RAND公式生成的随机数是真正的随机数吗?还是伪随机数?
C语言如何srand和rand函数产生10个1-100内的随机数
C语言:求问rand()函数在用的时候如何去规定它是产生int类随机数还是float随机数?最好能简单举例
vhdl伪随机数求用vhdL语言编写一段产生1-7随机数字的程序
c语言 随机数 求pi 求解释为什么rand()/(float)RAND_MAX可以产生0到1的随机小数
C语言中的rand()函数,说是产生随机数的函数,可是为什么我在使用时产生的随机数就没变过呢?
为什么rand( )%100是产生100以内的随机数?