java中使用random随机生成两个不重复的整数
时间: 2023-05-02 14:05:35 浏览: 99
可以使用以下代码生成两个不重复的整数:
```
import java.util.*;
public class RandomNonRepeatIntegers {
public static void main(String[] args) {
Random random = new Random();
Set<Integer> set = new HashSet<>();
while (set.size() < 2) {
set.add(random.nextInt(10)); //范围从0到9
}
Integer[] integers = set.toArray(new Integer[0]);
System.out.println(Arrays.toString(integers));
}
}
```
运行结果可能是:
```
[5, 0]
```
相关问题
用Java编写线性同余器生成10以内正整数不重复的2个随机数字,不使用random的api
以下是用Java编写线性同余器生成10以内正整数不重复的2个随机数字的代码:
```java
public class LinearCongruentialGenerator {
private static final int a = 252149039;
private static final int c = 11;
private static final int m = 1 << 31;
private int seed;
public LinearCongruentialGenerator(int seed) {
this.seed = seed;
}
public int nextInt() {
seed = (a * seed + c) % m;
return seed;
}
public static void main(String[] args) {
LinearCongruentialGenerator generator = new LinearCongruentialGenerator(1);
int n1 = generator.nextInt() % 10 + 1;
int n2;
do {
n2 = generator.nextInt() % 10 + 1;
} while (n2 == n1);
System.out.println(n1 + " " + n2);
}
}
```
在该代码中,我们实现了一个线性同余器,用于生成随机数。在构造函数中,我们传入了一个种子,用于初始化随机数生成器。在 `nextInt()` 方法中,我们使用线性同余算法生成下一个随机数,并更新种子。在 `main()` 方法中,我们使用生成的随机数生成10以内的正整数,确保两个随机数不重复。最后,我们输出这两个随机数。
分别利用arraylist和set随机生成十个不重复的随机整数,随机整数范围为350到450。
题目大意:分别利用ArrayList和Set随机生成十个不重复的随机整数,随机整数范围为350到450。
答案:
使用ArrayList生成随机整数的代码可以这样写:
```python
import java.util.ArrayList;
import java.util.Random;
public class Main {
public static void main(String[] args){
ArrayList<Integer> arrayList = new ArrayList<>();
Random random = new Random();
int min = 350;
int max = 450;
while (arrayList.size() < 10){
int randomNumber = random.nextInt((max - min) + 1) + min;
if (!arrayList.contains(randomNumber)){
arrayList.add(randomNumber);
}
}
System.out.println(arrayList);
}
}
```
使用Set生成随机整数的代码可以这样写:
```python
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class Main {
public static void main(String[] args){
Set<Integer> set = new HashSet<>();
Random random = new Random();
int min = 350;
int max = 450;
while (set.size() < 10){
int randomNumber = random.nextInt((max - min) + 1) + min;
set.add(randomNumber);
}
System.out.println(set);
}
}
```
两个代码的基本思路是相同的:首先定义一个存放随机整数的集合,然后通过一个循环不断生成随机整数,将生成的随机整数添加到集合中,直到集合中的随机整数数量达到十个为止。其中的细节区别在于,ArrayList是一个可以重复添加元素的集合,需要在添加元素之前判断该元素是否已经存在集合中,而Set是一个不允许出现重复元素的集合,每次添加元素时都进行了去重操作。