我有一个简单的程序,通过使用以下代码确保另一个程序连续运行10次:
for (i = 0; i < 10; i++)
{
system ("shor.exe 15");
}
程序shor.exe
确实运行了10次;问题是该程序是概率性的,在第一步中它使用随机数生成器并将其保存在变量“随机”中,但10次运行中的每一个都具有相同的变量随机值,所以我猜它不会重置所有变量,只是每次运行使用相同的生成值。
我现在的问题是如何在每次运行之间重置/清除所有变量?
答案 0 :(得分:2)
您的程序忘记了种子随机数发生器。如果确实如此,并且它使用time(NULL)
为随机化器播种,那么它们都用相同的种子播种,因为它们都是在同一时刻开始的:你的for循环不会等待每个程序结束而随机化器通常是确定性的,意味着相同的种子意味着相同的随机数序列。