1. 用c语言生成0~999 999(均包含,或者更大范围)之间的随机整数20 000个,要求随机数都不相同(如相同,则需要去重复并重新生成当前随机数),即,得到20 000个两两不同的随机数。
时间: 2024-02-13 15:07:33 浏览: 96
好的,以下是一个用C语言生成20,000个不同随机数的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 1000000
#define NUM_COUNT 20000
int main() {
int nums[NUM_COUNT];
int count = 0;
srand(time(NULL));
while (count < NUM_COUNT) {
int num = rand() % MAX_NUM;
int is_duplicate = 0;
for (int i = 0; i < count; i++) {
if (nums[i] == num) {
is_duplicate = 1;
break;
}
}
if (!is_duplicate) {
nums[count++] = num;
}
}
for (int i = 0; i < NUM_COUNT; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
这个程序使用了C语言的标准库函数`rand()`来生成随机数,并使用一个数组`nums`来存储已经生成的随机数。在每次生成新的随机数时,都检查新生成的数是否已经在数组中出现过,如果是则重新生成,直到生成一个不重复的随机数。最后输出数组中的20,000个不同的随机数。
请注意,这个程序使用了C语言的标准库随机数生成器,如果需要生成更加安全的随机数,可以考虑使用其他方法,比如openssl库中的随机数生成函数。
阅读全文