如何保证生成的随机数不重复
时间: 2024-10-15 18:08:30 浏览: 42
在C语言中,为了确保生成的随机数不重复,可以采用“do...while”循环和一个临时变量来保存已经生成的随机数。当尝试生成一个新的随机数时,会检查这个随机数是否已经在数组中存在。如果存在,就继续重新生成,直到找到一个未被占用的值。这里有一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_SIZE 10
#define MIN_VALUE 1
#define MAX_VALUE 100
int numbers[ARRAY_SIZE];
int temp_num;
void generate_unique_random_numbers() {
srand(time(0));
for (size_t i = 0; i < ARRAY_SIZE; ++i) {
temp_num = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE; // 生成随机数
// 检查该随机数是否已存在于数组中
while (temp_num == numbers[i]) {
temp_num = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE; // 重复则再生成新的随机数
}
numbers[i] = temp_num;
}
}
int main() {
generate_unique_random_numbers();
printf("随机数数组: ");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%d ", numbers[i]);
}
return 0;
}
阅读全文