admin 管理员组

文章数量: 887021


2023年12月21日发(作者:手机查看php文件的软件)

JAVA随机数之多种方法从给定范围内随机N个不重复数

在Java中生成随机数有多种方法,例如使用Math类的random(方法,使用Random类,以及使用ThreadLocalRandom类。下面将介绍不同方法从给定范围内随机生成N个不重复数的实现。

方法一:使用Math类的random(方法

Math类的random(方法返回一个浮点数,在范围[0.0, 1.0)之间。我们可以通过将其乘以范围的长度,并强制转换为整数来获得在给定范围内的随机整数。

```java

int min = 1; // 最小值

int max = 100; // 最大值

int N = 10; // 需要生成的随机数个数

Set set = new HashSet<>(;

while(( < N)

int randomNum = min + (int)(( * (max - min));

(randomNum);

for (int num : set)

n(num);

```

方法二:使用Random类

Random类是Java提供的一个伪随机数生成器。我们可以使用nextInt(方法从给定范围内生成一个随机整数。

```java

int min = 1;

int max = 100;

int N = 10;

Random rand = new Random(;

Set set = new HashSet<>(;

while(( < N)

int randomNum = t(max - min + 1) + min;

(randomNum);

for (int num : set)

n(num);

```

方法三:使用ThreadLocalRandom类

ThreadLocalRandom类是Java 7中引入的一个新类,它提供了线程本地的随机数生成器。通过使用nextInt(方法,我们可以从给定范围内生成一个随机整数。

```java

int min = 1;

int max = 100;

int N = 10;

Set set = new HashSet<>(;

while(( < N)

int randomNum = t(.nextInt(min, max

+ 1);

(randomNum);

for (int num : set)

n(num);

```

方法四:使用Collections类的shuffle(方法

Collections类的shuffle(方法可以随机打乱一个列表。我们可以先创建一个包含给定范围内所有整数的列表,然后使用shuffle(方法打乱列表,并取前N个数。

```java

int min = 1;

int max = 100;

int N = 10;

List list = new ArrayList<>(;

for (int i = min; i <= max; i++)

(i);

e(list);

List randomNums = t(0, N);

for (int num : randomNums)

n(num);

```

总结:在Java中生成随机数的方法有很多种,可以根据具体需求选择适合的方法。以上给出的四种方法都可以从给定范围内生成N个不重复的随机数。可以根据实际情况选择其中一种方法来使用。


本文标签: 方法 范围 给定 生成 使用