从枚举中按概率生成随机值的Java代码

bluesky5月前 ⋅ 81 阅读

ChatGPT的回答仅作参考:

public enum MyEnum {
    VALUE1(0.2),
    VALUE2(0.3),
    VALUE3(0.5);

    private double probability;

    MyEnum(double probability) {
        this.probability = probability;
    }

    public static MyEnum getRandomValue() {
        double random = Math.random();
        double cumulativeProbability = 0.0;
        for (MyEnum value : values()) {
            cumulativeProbability += value.probability;
            if (random <= cumulativeProbability) {
                return value;
            }
        }
        return null; // should never happen
    }
}

// Usage:
MyEnum randomValue = MyEnum.getRandomValue();

全部评论: 0

    相关推荐