gpt4 book ai didi

c - 如何创建不重复的随机数?

转载 作者:行者123 更新时间:2023-11-30 15:27:28 25 4
gpt4 key购买 nike

我正在尝试为老年之家创建一款宾果游戏。我能够使用用于扫描数组的随机数生成器来制作一个,但问题是需要很长时间(2 分钟)来搜索数组并确保没有重复的 double 。我做了一些研究,发现 c 中称为伪随机的东西在创建时不会重复数字。但代码看起来非常复杂,所以我不愿意接受我不完全理解的东西。这引起了我的问题,是否有一种简单的方法来创建非重复随机数生成器,或者有一个可以解释随机数生成器的好解释?

最佳答案

很久以前,我用 C 语言编写了这个非常简单的程序,它生成 0 到 20 之间的 10 个随机数,并且不重复任何数字。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10 //Number to be generated.
#define rangeMAX 20 //Upper limit of range.
#define rangeMIN 0 //Lower limit of range.

int main()
{
int get, c, i, arr[MAX], chk, x;
c = i = 0;
srand(time(0)); // this will ensure that every time, program will generate different set of numbers. If you remove this, same set of numbers will generated every time you run the program.
while(c < MAX)
{
get = ((rand() % (rangeMAX-rangeMIN+1)) + rangeMIN); // generate random number.
//After generating that number check if it is already in array.
for(i=0; i<=c; i++)
{
if(arr[i] == get)
{
chk = 0;
break;
}
else if(arr[i] != get)
{
chk = 1;
}
}
if(chk==1)
{
arr[c]=get;
printf("%d\n",arr[c]);
c++;
}
}
return 0;
}

希望这会有所帮助。

关于c - 如何创建不重复的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com