生成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接口定义集合的行为。