生成7个1~36之间的无重复的随机整数,并输出这7个数
时间: 2024-03-23 19:43:15 浏览: 50
好的,我可以为您编写这个程序。以下是JAVA代码实现:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomNumbers {
public static void main(String[] args) {
Set<Integer> set = new HashSet<Integer>();
Random random = new Random();
while (set.size() < 7) {
set.add(random.nextInt(36) + 1);
}
for (int num : set) {
System.out.print(num + " ");
}
}
}
```
这个程序使用了一个Set来存储生成的随机数,保证了没有重复的数。程序使用了Java自带的Random类来生成随机数。在循环中,如果Set中的元素数量小于7,则继续生成随机数,并将其加入Set中。最后,程序遍历Set中的元素,依次输出这7个随机整数。
相关问题
随机生成30个10~99之间不重复的整数。使用c语言
好的,以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[30]; // 定义保存整数的数组
int i, j, flag;
srand(time(NULL)); // 初始化随机数种子
for (i = 0; i < 30; i++) {
// 生成10~99之间的随机整数,且保证不重复
do {
nums[i] = rand() % 90 + 10;
flag = 0;
for (j = 0; j < i; j++) {
if (nums[j] == nums[i]) {
flag = 1;
break;
}
}
} while (flag == 1);
printf("%d ", nums[i]); // 输出生成的随机整数
}
printf("\n");
return 0;
}
```
与之前的代码相比,我们在生成随机整数的过程中添加了一些判断,以保证生成的整数不重复。具体来说,我们使用`do...while`循环来不断生成随机整数,直到生成一个不与之前的整数重复的数为止。在每次生成新的随机整数时,我们都遍历之前生成的所有整数,如果有重复的,则将`flag`设置为1。如果`flag`为1,则说明当前生成的整数与之前的某个整数重复,需要重新生成。如果`flag`为0,则说明当前生成的整数不重复,可以将其保存到数组中,并输出。
c语言编程,随机生成 30个10~99之间不重复的整数。程序员无法确知伪随机数发生器是会生成重复的伪随机数,但可以在编程时忽略那些重复的,并重新生成一个新的不同的伪随机数。
好的,这里是使用 C 语言实现随机生成 30 个 10~99 之间不重复的整数的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[30]; // 定义数组
int i, j;
int isDuplicate;
// 随机种子
srand((unsigned)time(NULL));
// 随机生成 30 个 10~99 的整数
for (i = 0; i < 30; i++) {
do {
isDuplicate = 0; // 每次循环前重置标记
nums[i] = rand() % 90 + 10;
// 判断是否重复
for (j = 0; j < i; j++) {
if (nums[i] == nums[j]) {
isDuplicate = 1;
break;
}
}
} while (isDuplicate); // 如果重复则重新生成
printf("%d ", nums[i]); // 输出生成的整数
}
printf("\n");
return 0;
}
```
在这个代码中,我们同样使用了 C 语言中的 rand() 函数来生成随机整数。不过,我们在生成每一个整数时,都会先使用一个 do-while 循环来判断这个整数是否已经在数组中出现过。如果已经出现过,则标记 isDuplicate 的值为 1,继续生成下一个随机整数;否则,将这个整数保存到数组中,并输出。这样,我们就可以保证数组中的整数不重复。
希望这个代码能够帮助到你,如果你有任何问题,可以随时问我。
阅读全文