gpt4 book ai didi

c - 彼此不匹配的随机数

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

我想用C生成不同的数字。我们可以使用 stdlib 库和 srand 函数生成随机数。

例如;我想产生一个 0 到 5 之间的随机数。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
int i;
int n = 4;
int array[3];

srand(time(NULL));

for(i = 0; i < n; i++)
{
array[i] = rand() % 5;
printf("%d\n", array[i]);
}
return 0;
<小时/>

但是相同的数字可能在这里重合。就像这样:

2
4
4
1

如何防止这种情况发生?

最佳答案

也许你可以使用这样的东西:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main(void)
{
int i;
int n = 4;
int array[4];

// Fill an array with possible values
int values[5] = {0, 1, 2, 3, 4};

srand(time(NULL));

for(i = 0; i < n; i++)
{
int t1 = rand() % (5-i); // Generate next index while making the
// possible value one lesser for each
// loop

array[i] = values[t1]; // Assign value
printf("%d\n", array[i]);

values[t1] = values[4-i]; // Get rid of the used value by
// replacing it with an unused value
}
return 0;
}

关于c - 彼此不匹配的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42789858/

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