java 从1-n中得到m个不重复的随机整数
时间: 2023-06-14 18:07:11 浏览: 116
可以使用Java的Random类生成随机数,并使用Set保证生成的随机数不重复,直到生成m个不重复的随机数为止。代码如下:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomNumbers {
public static void main(String[] args) {
int n = 100;
int m = 10;
Set<Integer> set = new HashSet<>();
Random random = new Random();
while (set.size() < m) {
int num = random.nextInt(n) + 1;
set.add(num);
}
System.out.println(set);
}
}
```
其中,n表示随机数的范围为1到n,m表示要生成的随机数的个数。使用HashSet可以保证生成的随机数不重复。
相关问题
写一个java程序,随机生成由n个1到m之间的不重复的整数组成的序列(m>n>10000)
你好,可以使用Java的Random类来生成随机数,再使用HashSet来去重。以下是示例代码:
import java.util.*;
public class RandomSequence {
public static void main(String[] args) {
int n = 1000;
int m = 20000;
Set<Integer> set = new HashSet<>();
Random random = new Random();
while (set.size() < n) {
int num = random.nextInt(m) + 1;
set.add(num);
}
int[] arr = new int[n];
int i = 0;
for (int num : set) {
arr[i++] = num;
}
System.out.println(Arrays.toString(arr));
}
}
其中,n为序列长度,m为随机数的上限。使用HashSet来去重,最后将结果转换为数组输出。
产生n个范围在min-max之间的不重复的随机整数,原样输出,用java中的数组。
可以使用Java中的Random类生成随机数,然后利用HashSet去重,最后将结果存入数组中输出。
以下是示例代码:
```java
import java.util.HashSet;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int n = 10; // 生成10个随机数
int min = 1; // 最小值
int max = 100; // 最大值
Random random = new Random();
HashSet<Integer> set = new HashSet<>(); // 用于去重
while (set.size() < n) {
int num = random.nextInt(max - min + 1) + min; // 生成随机数
set.add(num); // 加入HashSet去重
}
Integer[] arr = set.toArray(new Integer[0]); // 转化为数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " "); // 输出数组元素
}
}
}
```
输出结果类似于:
```
34 1 43 23 12 76 98 56 89 67
```
阅读全文