java生成数字不重复的方法

java生成数字不重复的方法


2024年4月26日发(作者:)

java生成数字不重复的方法

有多种方法可以生成不重复的数字,下面列举几种常见的方法:

1. 使用Set集合:将生成的数字添加到Set集合中,Set集合会自

动去重。继续生成数字直到Set集合中的数字个数达到要求。

```java

Set set = new HashSet<>(;

Random rand = new Random(;

while (( < numCount)

int num = t(maxNum - minNum + 1) + minNum;

(num);

int[] nums = new int[numCount];

int index = 0;

for (int num : set)

nums[index++] = num;

```

2. 使用洗牌算法(Fisher–Yates算法):生成一个包含所有可能

数字的数组,然后对数组进行洗牌,截取前n个数字作为结果。

```java

int[] nums = new int[maxNum - minNum + 1];

for (int i = minNum; i <= maxNum; i++)

nums[i - minNum] = i;

Random rand = new Random(;

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

int j = t(i + 1);

int temp = nums[i];

nums[i] = nums[j];

nums[j] = temp;

int[] result = (nums, numCount);

```

3.使用递增的方式生成不重复的数字:初始数字为最小值,每次递增

一个步长,直到生成足够的数字。

```java

int[] nums = new int[numCount];

int num = minNum;

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

nums[i] = num;

num += step;

if (nums[numCount - 1] > maxNum)

//数字超过了范围,需要适当调整

int diff = nums[numCount - 1] - maxNum;

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

nums[i] -= diff;

}


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714147033a2390564.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信