2024年4月26日发(作者:)
java生成数字不重复的方法
有多种方法可以生成不重复的数字,下面列举几种常见的方法:
1. 使用Set集合:将生成的数字添加到Set集合中,Set集合会自
动去重。继续生成数字直到Set集合中的数字个数达到要求。
```java
Set
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条)