JAVA生成不重复随机数算法
在Java中,有多种方式可以生成不重复的随机数。以下是基于不同的数据结构和算法来生成不重复的随机数的示例。
1. 使用ArrayList和Collections.shuffle(方法:
```java
import java.util.*;
public class RandomNumberGenerator
public static void main(String[] args)
int range = 100; // 生成随机数的范围
int count = 10; // 生成随机数的数量
List<Integer> numbers = new ArrayList<>(;
for (int i = 1; i <= range; i++)
numbers.add(i);
}
Collections.shuffle(numbers);
for (int i = 0; i < count; i++)
System.out.(i));
}
}
```
2. 使用HashSet:
```java
import java.util.*;
public class RandomNumberGenerator
public static void main(String[] args)
int range = 100; // 生成随机数的范围
int count = 10; // 生成随机数的数量
Set<Integer> numbers = new HashSet<>(;
Random random = new Random(;
while (numbers.size( < count)
int randomNumber = Int(range) + 1;
numbers.add(randomNumber);
}
for (int number : numbers)
System.out.println(number);
}
}
```
3. 使用Fisher-Yates洗牌算法:
```java
import java.util.*;
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 = Int(i + 1);
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
for (int i = 0; i < count; i++)
System.out.println(numbers[i]);
}
}
```
以上是三种常见的生成不重复随机数的算法,每种算法都有其特点和适用场景。根据需求选择适当的算法可以生成所需的不重复随机数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论