为什么C++ rand函数产生的随机数有相同的规律?

2025-04-13 06:31:57
推荐回答(4个)
回答1:

rand本质上产生的是伪随机数,不是真正意义上的随机数。已知常见的几种产生伪随机数的算法都是通过简单的迭代递推而产生,种子是决定性因素,一个相同种子产生的后续每一个伪随机数是可以一个个推算出来的。这也就是为什么使用rand函数之前一定要先用srand给一个比较随机一些的种子先初始化,一般用系统时间,因为程序运行的当前时刻是很难发生撞车的。而没有正确的使用srand的程序,或者说每次都使用相同种子rand产生的伪随机数序列将完全相同。

回答2:

要事先设置一个伪随机数种子(srand函数),种子相同,产生的随机数序列就相同,一般以当前时间为随机数种子,因为时间是一去不复返的,每时每刻时间都在变化,就可以保证每时每刻产生的随机数序列不同。

回答3:

伪随机数,通过一个算法获得

回答4:

要先设置随机种子吧