写一个java程序,随机生成由n个1到m之间的不重复的整数组成的序列(m>n>10000)
时间: 2023-04-06 19:01:41 浏览: 81
你好,可以使用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来去重,最后将结果转换为数组输出。
相关问题
java 从1-n中得到m个不重复的随机整数
可以使用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,随机生成一个n排列
您好,我是 CSDN 开发的 C 知道,根据您的要求,我可以为您提供一个 Java 程序,用于随机生成一个正整数 n 的排列。以下是程序代码:
import java.util.*;
public class RandomPermutation {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数 n:");
int n = input.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
Random rand = new Random();
for (int i = n - 1; i >= 1; i--) {
int j = rand.nextInt(i + 1);
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
System.out.print("随机生成的 " + n + " 排列为:");
for (int i = 0; i < n; i++) {
System.out.print(arr[i] + " ");
}
}
}
希望这个程序能够满足您的需求。如果您有其他问题,欢迎随时向我提问。