代码生成(用C语言写一个用一门高级编程语言生成0~999 999(均包含,或者更大范围)之间的随机整数20 000个,要求随机数都不相同(如相同,则需要去重复并重新生成当前随机数),即,得到20 000个两两不同的随机数。)
时间: 2023-11-24 10:05:11 浏览: 125
C语言100例
以下是一个用C语言实现的生成随机数的代码,使用了线性同余法生成随机数,并使用了哈希表去重:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_LENGTH 20000
#define MOD 1000000
bool hash[MOD] = {false};
int main() {
int random_nums[MAX_LENGTH];
int cnt = 0;
int a = 1664525, c = 1013904223;
int x = rand() % MOD;
while (cnt < MAX_LENGTH) {
x = (a * x + c) % MOD;
if (!hash[x]) {
hash[x] = true;
random_nums[cnt++] = x;
}
}
for (int i = 0; i < MAX_LENGTH; i++) {
printf("%d ", random_nums[i]);
}
printf("\n");
return 0;
}
```
其中,a和c分别为线性同余法的参数,x为当前随机数,使用哈希表来判断随机数是否重复。
阅读全文