java - 以给定概率生成区间内的随机数

标签 java

我想以给定的概率生成一个随机数,但我不知道如何:

我有一个二维数组: int[ ][ ] aryNumbers = new int[4][]

对于每个数字(4),我想生成一个区间为 [1...9] 的 int 结果,概率为 0.5 。否则生成一个区间为 [10...99] 的数字。

注意:我知道如何生成数字,但在间隔之间进行选择让我感到困惑。

编辑:

 public int numberAttribution(){
    Random rand = new Random();
    double dbNum = rand.nextDouble();
    int intNum;
    int min1 = 1, max1 = 9, range1 = max1 - min1 + 1;
    int min2 = 10, max2 = 99, range2 =  max2 - min2 + 1;

    if(dbNum < 0.5){
        intNum = rand.nextInt(range1) + min1;
    }else{
        intNum = rand.nextInt(range2) + min2;
    } 
       System.out.print(intNum);
    return intNum;
}

最佳答案

如果我没猜错的话,您希望有 50% 的机会生成 1 到 9 之间的数字,否则生成 10 到 99 之间的数字?

在这种情况下,你可以这样做:

int randomNumber = 0;
if (Math.random() > 0.5) {
    randomNumber = 1 + (int) (Math.random() * 9);
} else {
    randomNumber = 10 + (int) (Math.random() * 90);
}

Runnable version

关于java - 以给定概率生成区间内的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32845323/

相关文章:

java - 单击显示 Iframe

java - "Unable to load library: JNA native support not found in resource path"尝试在 Mac OS X 上加载 JNA 库

java - 获取 Tomcat 容器名称后的 URI 部分

java - Android 通讯录 - 获取电话号码

java - 遍历一个巨大的列表,检查字符串是否等于 true

java - LWJGL wiki 上的示例代码因 GL_INVALID_OPERATION 失败

java - 读取包含双引号且内部有逗号的 csv

java - 服务器为无效的 SNI 主机名提供证书

java - 如何在文本文件中*在*特定的其他点之后搜索一个点?

java - 如何在饼图扇区内显示值