循环迭代中的相同随机数
在执行 15 次的循环中,您在每次迭代中调用了 dh.setDoors() 。在此函数内,调用 srand(time(0)) 来启动伪随机数的生成。但是,循环内对 rand() 的后续调用会导致在所有 15 次迭代中 carSetter 和 Decisionr 的值保持不变。
出现此行为是因为 srand(time(0)) 设置基于随机数生成器的种子在当前时间。由于循环执行速度很快,time(0) 每次都会返回相同的值,从而产生相同的伪随机数序列。
要解决此问题,建议仅调用 srand(time(0 )) 在程序开始时一次,通常遵循以下过程:
srand(time(0));
for (int i = 0; i 通过仅执行一次此初始化,伪随机数生成器将为循环的每次迭代生成唯一的数字序列,从而产生 carSetter 和 Decisionr 值的预期变化。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3