java - 使用随机百分比

标签 java random

今天我创建了一个生成随机数字(0、1、2或3)的函数。
但我希望你有一个百分比函数。

我想对生成的数字下降的每个机会应用一个百分比。
示例:0 将有 60% 的机会被抽到,数字 1 19%,...

 public void GenerGame(){

        Random r = new Random();
        int game = r.nextInt(max - min +1);

        if (game == 0){
            // do something
        }
        else if (game == 1){
            // do something
        }
        else if (game == 2){
            // do something
        }
        else {
            // do something
        }
 } 

我可以使用 Random 来实现吗?

最佳答案

您绝对可以通过重新考虑您的 RNG 来做到这一点。

如果将随机生成范围更改为 0-99,您可以将其视为生成百分比的范围,并因此规定这些范围内的各种行为。

public void GenerGame(){

    Random r = new Random();
    int game = r.nextInt(100);

    if (game < 60){ // 60%
        // do something
    }
    else if (game < 79){ // 19%
        // do something
    }
    else if (game < 93){ // 14%
        // do something
    }
    else { // 7%
        // do something
    }
} 

您可以通过将范围扩大到 0-999 将精度更改为十分之一。

关于java - 使用随机百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38838172/

相关文章:

java - 如何将黑莓库添加到 blackberry-eclipse-plugin 项目中?

java - 如何使用 skyepub 读取 epub 文件?

Java随机不重复

c - 在c中生成范围为[0,1]的随机 float

java - Java 中的 Math.random()

php - 不确定如何随机化这个

java - 从文本文件中的一行拆分 String[] 数组时出错 "Exception in thread "AWT-EventQueue- 0"java.lang.ArrayIndexOutOfBoundsException: 1"

java - 仅使用整数计算 2^n%k

java - 如何在调试期间使用 IntelliJ 计算断点命中数

perl - 在perl中随机化矩阵,保持行和列的总数相同