如何使用没有随机数的百分比?

时间:2018-08-13 15:47:33

标签: java

我想每25%的时间运行一次代码:

示例:

public void run() {
    Random rnd = new Random();
    int num = rnd.nextInt(100);
    if(num < 25) {
        // do stuff
    }
}

但是问题是随机类并不是真正准确的,并且由于某些代码性能问题,它以5%的机会成功达到了17/20次,而以95%的机会成功了多次。 我已经尝试过SecureRandom和Random类。

1 个答案:

答案 0 :(得分:4)

有25%的时间有两种方法可以运行代码。您可以每四次运行一次,也可以使用随机生成器平均25%的时间运行

每4次

.acc-titel:before {
    font-family: "IBM Plex Mono", monospace;
    font-weight: 100;
    content: "+";
    margin-left: 20px; // Also added this to separate it from the image
    font-size: 1.8em;
    line-height: 0.7em;
    color: #08455c;
    float: right !important;
    text-align: center;
    display: block;
    transition: all 0.4s cubic-bezier(0.5, 0.2, 0.3, 1);  
}

.active:before {
  transform: rotate(405deg);
}

平均25%的时间

如评论中所述,每次调用 enum Order { ONE = "First", TWO = "Second" } console.log(`One is ${Order.ONE.toString()}`); 函数时,不要创建新的Random生成器,这一点很重要,因为这会导致性能下降,并且还可能导致25%的时间无法运行必填。

class MyClass {
    private int i = 0;

    public void run() {
        if(this.i % 4 == 0) {
            // execute it
        }
        this.i++;
    }
}