【问题标题】:How do I generate a unique set of random variables [duplicate]如何生成一组唯一的随机变量[重复]
【发布时间】:2021-02-15 16:49:49
【问题描述】:

我的问题很简单。在 C 中,我试图创建一组随机值来为 r 设置,但是每当我运行代码时,它会一遍又一遍地生成相同的数字,而不是在每次迭代时生成唯一的数字序列。我应该如何更改代码来解决这个问题?

我的代码:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
int r;
for (int i;i<5;i++)
{
    r=rand() % 10;
    printf("%d\n",r);
}
}

此代码始终返回值 1,7,4,0,9。我怎样才能让它在每次连续使用该函数时随机化每个?

【问题讨论】:

  • 重复目标是针对C++的,但是在C中解决方法是一样的。

标签: c loops random


【解决方案1】:

rand 不会生成真正的随机数。但要使其独一无二,您需要在每次运行程序时都为其播种不同的内容。

例子:

int main()
{
    int r;
    srand(time(NULL));  
    for (int i;i<5;i++)
    {
        r=rand() % 10;
        printf("%d\n",r);
    }
}

【讨论】:

  • 感谢您的回复,您是否碰巧知道一些种子会产生“随机”数字而不是使用时间,或者我可能会在哪里找到一些种子?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多