相关疑难解决方法(0)

srand(time(NULL))不会足够快地更改种子值

我在C中编写了一个简单的随机数生成器,int l它是下限,int u是上限.

它运作得很好,但我有一个关于播种它的问题.如果我在循环中运行它,time(NULL)不会足够快地更改种子值,以防止获得完全相同的连续系列随机数.

我想知道其他人怎么可能解决这个问题.我在网上找到的所有例子都time(NULL)用作种子值生成器.

int generateRandom(int l, int u)
{
   srand(time(NULL));

   int r = rand() % ((u - l) + 1);
   r = l + r;

   return r;
}
Run Code Online (Sandbox Code Playgroud)

如果我是紧挨着彼此碰撞的几行代码,无论是Rand1Rand2是完全一样的.

printf("Rand1 = %d\n", generateRandom(10, 46));
printf("Rand2 = %d\n", generateRandom(10, 46));
Run Code Online (Sandbox Code Playgroud)

c

19
推荐指数
4
解决办法
6万
查看次数

在C语言中使用2个不同的随机数

可能重复:
调用rand()返回非随机结果

在我的工作室中,我需要2个不同的随机数,但我得到2个相同的随机数.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int random1_6(){
 int k;
 srand(time(0));
 k=((rand()%6)+1);
 return k;
}
int main(void){
 int a,b;
    a=random1_6();
    printf("%d.\n",a);
    b=random1_6();
    printf("%d.\n",b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何获得2个不同的随机数?

c

1
推荐指数
1
解决办法
3598
查看次数

标签 统计

c ×2