早教吧 育儿知识 作业答案 考试题库 百科 知识分享

为啥我的c++产生随机数的函数不起作用呢?

题目详情
为啥我的c++产生随机数的函数不起作用呢?
▼优质解答
答案和解析
那是当然啦.你用的是时间做随机数种子,也就是说在1s中之内,你调用了多次生成随机数的函数.而这个随机数是伪随机的,也就是可以重复得到的.而你的随机数种子没变,所以就得到差不多大小的咯.只要你把srand(time(NULL));这句注释掉,你就会看到生成的不是差不多一样的了.追问:
但是这些数是有周期的呀,在我的机器上每21999就会产生一个周期回答:
这个本来就是伪随机的.肯定不可能做到真正的随机啦.你只能尽可能的去逼近真随机,当达到你需要的精度就可以了.就好像你在用π来算圆的周长面积等的时候,你永远得不到一个确切的能够在计算机上表示出来的结果,只要达到你的精度,那就可以认为是结果了.至于怎么去逼近,一是可以用算法来逼近,二是可以用自带的,设置随机数种子.种子不同,得到的随机数序列的近似度也是不同的.