首页 >后端开发 >C++ >如何避免在 C 循环中重复随机数?

如何避免在 C 循环中重复随机数?

Patricia Arquette
Patricia Arquette原创
2024-12-21 06:49:10953浏览

How to Avoid Repeating Random Numbers in a C   Loop?

如何在 C 循环中生成真正唯一的随机数

在此代码中,您尝试在每个循环中生成不同的随机数迭代:

for (int t = 0; t<10; t++)
{
    int random_x;
    srand(time(NULL));
    random_x = rand() % 100;
    cout << "\nRandom X = " << random_x;
}

但是,问题是您在迭代中多次调用 srand() 环形。这每次都会使用相同的种子值初始化随机数生成器 (RNG),从而产生相同的随机数序列。

要在循环中生成真正唯一的随机数,您需要执行以下步骤:

  1. 在循环之外初始化 RNG 一次。这确保每次执行时都使用新的种子值循环。
srand(time(NULL)); // Initialize RNG outside of loop
  1. 将随机数生成移到循环内。 将 srand() 调用替换为 rand()。这将为每次迭代生成一个新的随机数。
random_x = rand() % 100;
  1. 关于重置 RNG,使用新种子值调用 srand() 将重置 RNG初始化。您可以在循环内或程序中需要重置 RNG 的任何位置执行此操作。

通过执行这些步骤,您可以在循环的每次迭代中生成不同的随机数。

以上是如何避免在 C 循环中重复随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn