生成5位唯一随机数字的实现流程
流程图如下:
flowchart TD
start(开始)
input(输入位数)
generate(生成随机数字)
check(检查是否唯一)
output(输出唯一随机数字)
end(结束)
start --> input
input --> generate
generate --> check
check --> generate
check --> output
output --> end
详细步骤
步骤 | 描述 |
---|---|
输入位数 | 输入一个整数,表示要生成的随机数字的位数 |
生成随机数字 | 使用java.util.Random类生成一个随机数字 |
检查是否唯一 | 检查生成的随机数字是否已经存在,如果已经存在则重新生成 |
输出唯一随机数字 | 输出生成的唯一随机数字 |
代码实现
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class RandomNumberGenerator {
private static Set<Integer> generatedNumbers = new HashSet<>();
public static int generateUniqueNumber(int digits) {
Random random = new Random();
int randomNumber = random.nextInt((int) Math.pow(10, digits));
while (generatedNumbers.contains(randomNumber)) {
randomNumber = random.nextInt((int) Math.pow(10, digits));
}
generatedNumbers.add(randomNumber);
return randomNumber;
}
public static void main(String[] args) {
int uniqueNumber = generateUniqueNumber(5);
System.out.println("唯一随机数字:" + uniqueNumber);
}
}
代码注释:
- 第6行:创建一个Set集合用于存储已经生成的随机数字,确保唯一性。
- 第8行:创建一个Random对象,用于生成随机数字。
- 第9行:生成一个范围在0到10^digits之间的随机数字,即生成指定位数的随机数字。
- 第11行-16行:检查生成的随机数字是否已经存在于集合中,如果存在则重新生成,直到生成一个唯一的随机数字。
- 第18行:将生成的唯一随机数字添加到集合中。
- 第19行:返回生成的唯一随机数字。
- 第21行-24行:在main方法中调用generateUniqueNumber方法生成一个5位的唯一随机数字,并输出。
类图
classDiagram
RandomNumberGenerator <-- Random
RandomNumberGenerator *-- HashSet
HashSet <|-- Set
解释:
- RandomNumberGenerator类依赖于Random类来生成随机数字。
- RandomNumberGenerator类使用HashSet来存储已经生成的随机数字,并使用Set接口定义集合的行为。