在C语言中,可以使用以下方法产生不重复的随机数:
(图片来源网络,侵删)
1、使用时间作为种子:
获取当前时间(以秒为单位)。
将当前时间转换为整数。
使用该整数作为随机数生成器的种子。
2、使用随机数生成器生成随机数:
包含头文件<stdlib.h>和<time.h>。
使用srand()函数设置种子。
使用rand()函数生成随机数。
以下是一个简单的示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 获取当前时间作为种子
int seed = time(NULL);
srand(seed);
// 定义一个数组用于存储生成的随机数
int numbers[10];
int count = 0; // 用于计数已生成的随机数
// 生成不重复的随机数并存储到数组中
while (count < 10) {
int random_number = rand();
int is_duplicate = 0; // 标记是否重复的标志位
// 检查生成的随机数是否已经存在数组中
for (int i = 0; i < count; i++) {
if (numbers[i] == random_number) {
is_duplicate = 1; // 如果已经存在,则标记为重复
break;
}
}
// 如果随机数不存在于数组中,则添加到数组中,并更新计数器和标志位
if (!is_duplicate) {
numbers[count] = random_number;
count++;
}
}
// 输出生成的不重复随机数
printf("Generated unique random numbers:
");
for (int i = 0; i < count; i++) {
printf("%d ", numbers[i]);
}
printf("
");
return 0;
}
运行以上代码,将会输出10个不重复的随机数,请注意,由于是使用当前时间作为种子,因此每次运行程序时生成的随机数可能会不同。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)