admin 管理员组

文章数量: 1184232


2023年12月21日发(作者:matchpoint翻译)

JAVA生成不重复随机数算法

在Java中,有多种方式可以生成不重复的随机数。以下是基于不同的数据结构和算法来生成不重复的随机数的示例。

1. 使用ArrayList和e(方法:

```java

import .*;

public class RandomNumberGenerator

public static void main(String[] args)

int range = 100; // 生成随机数的范围

int count = 10; // 生成随机数的数量

List numbers = new ArrayList<>(;

for (int i = 1; i <= range; i++)

(i);

}

e(numbers);

for (int i = 0; i < count; i++)

n((i));

}

}

```

2. 使用HashSet:

```java

import .*;

public class RandomNumberGenerator

public static void main(String[] args)

int range = 100; // 生成随机数的范围

int count = 10; // 生成随机数的数量

Set numbers = new HashSet<>(;

Random random = new Random(;

while (( < count)

int randomNumber = t(range) + 1;(randomNumber);

}

for (int number : numbers)

n(number);

}

}

```

3. 使用Fisher-Yates洗牌算法:

```java

import .*;

public class RandomNumberGenerator

public static void main(String[] args)

int range = 100; // 生成随机数的范围

int count = 10; // 生成随机数的数量

int[] numbers = new int[range];

for (int i = 0; i < range; i++)

numbers[i] = i + 1;

}

Random random = new Random(;

for (int i = range - 1; i > 0; i--)

int j = t(i + 1);

int temp = numbers[i];

numbers[i] = numbers[j];

numbers[j] = temp;

}

for (int i = 0; i < count; i++)

n(numbers[i]);

}

}

```

以上是三种常见的生成不重复随机数的算法,每种算法都有其特点和适用场景。根据需求选择适当的算法可以生成所需的不重复随机数。


本文标签: 生成 算法 场景 需求