打印6个随机数并判断是否重复

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function rnd(n, m) {//随机数: n - m之间,包含n 不包含m;
return parseInt(Math.random() * (m - n) + n);
}

function find(item, arr) {//查找item在arr中是否出现过,出现过返回true,没出现过返回false;
for (var i = 0; i < arr.length; i++) {
if (item === arr[i]) return true;
}
return false;
}

var arr = [];//用来存放6个随机数;

for (var i = 0; i < 6; i++) {
var n = rnd(1, 34);//随机数
if (!find(n, arr)) {//判断随机数在数组中是否出现过, 没有出现过的话就把随机数放到数组中;
arr.push(n);
} else {
alert('重复了');
i--;//重复的话就返回再查找一次.
}
}
console.log(arr);

</script>
</head>
<body>

</body>
</html>

转载于:https://www.cnblogs.com/yxs1530/p/10242703.html

### 回答1: 可以使用以下C语言代码来生成500个不重复随机数:int arr[500]; for (int i = 0; i < 500; i++) { arr[i] = i; // 初始化组 }// 从arr中随机取出500个 for (int i = 0; i < 500; i++) { int j = rand() % (500-i); // 随机生成一个[0,500-i)的 int temp = arr[j]; arr[j] = arr[500-i-1]; arr[500-i-1] = temp; } ### 回答2: 在C语言中,我们可以使用rand()函生成随机数。为了确保生成的随机数重复,我们可以使用一个循环来生成并检查每个,如果生成的已经存在,则重新生成,直到生成的重复为止。以下是一个生成500个不重复随机数的C语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX_NUM 500 int main() { int randomNums[MAX_NUM]; // 存储生成的随机数 int generated = 0; // 已生成的随机数量 int num; // 生成的随机数 srand(time(0)); // 设置随机数种子为当前时间 while (generated < MAX_NUM) { num = rand(); // 生成随机数 int isDuplicate = 0; // 标记是否为重复 // 检查生成的是否已经存在于组中 for (int i = 0; i < generated; i++) { if (randomNums[i] == num) { isDuplicate = 1; break; } } // 如果不是重复,则将其存入组中 if (!isDuplicate) { randomNums[generated] = num; generated++; } } // 打印生成的随机数 for (int i = 0; i < MAX_NUM; i++) { printf("%d\n", randomNums[i]); } return 0; } ``` 以上代码使用了一个组`randomNums`来存储已生成的随机数,并使用一个标记`generated`记录已生成的随机数量。每生成一个随机数,都会与已生成的随机数进行比较,如果存在重复则重新生成,直到生成的随机数量达到要求为止。最后,我们通过循环打印出生成的随机数。 ### 回答3: 要求生成500个不重复随机数,可以借助C语言中的随机数组来实现。具体步骤如下: 1. 首先,需要包含C语言的stdlib.h库,其中包含了rand()函用于生成随机数,以及srand()函用于设置随机数种子。 2. 定义一个大小为500的整型组,用于存储生成的随机数。 3. 使用srand()函设置一个随机数种子,可以使用time(NULL)来获取当前时间作为种子,保证每次运行程序生成的随机数序列不同。 4. 使用循环语句生成随机数,并判断生成的随机数是否已经在组中存在,如果不存在则将其存入组中。 5. 当组中存储的随机数达到500时,退出循环。 以下是具体的C代码实现: #include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM 500 int main() { int randomNum[NUM]; int count = 0; srand(time(NULL)); // 设置随机数种子为当前时间 while (count < NUM) { int num = rand(); // 生成一个随机数 // 判断生成的随机数是否已经存在于组中 int isExist = 0; for (int i = 0; i < count; i++) { if (randomNum[i] == num) { isExist = 1; break; } } // 如果随机数不存在于组中,则存入组 if (!isExist) { randomNum[count] = num; count++; } } // 打印生成的随机数 for (int i = 0; i < NUM; i++) { printf("%d\n", randomNum[i]); } return 0; } 以上代码将生成500个不重复随机数,并逐个打印输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值