我运行了一个调用
我知道你需要使用
rand()
函数四次的程序。我使用模运算符将范围限制在1-6之间。生成的整数是2、5、4和2。我重新运行了程序,得到了相同的数字。然后我创建了一个全新的程序,也调用了rand()
函数四次,但我仍然得到整数序列2、5、4、2。然后我关闭计算机,重新启动,创建了另一个调用rand()
函数四次的新程序,仍然得到序列2、5、4、2。我知道你需要使用
srand()
来“种子”RNG,从不同的点开始生成随机数,但我只是好奇:忘记种子这个问题,rand()
函数生成的序列是否与安装、编译器和/或操作系统有关?例如,以下任何一项是否会导致不同的序列:
- 在我的计算机上卸载并重新安装C编译器
- 在我的计算机上安装和使用不同的C编译器
- 在其他人使用相同编译器的计算机上运行该程序?
- 在其他人使用不同编译器(可能是不同操作系统)的计算机上运行该程序?
srand
部分即可。至于生成相同序列:标准是否强制执行特定算法?请注意,该链接不仅是规范,而且是国际标准(嗯,最终草案,但没有显著差异;标准是付费的)。 - too honest for this site