生成1到2之间的数字java Math.random()

这个问题在这里已经有了答案:

  • 如何在Java中的特定范围内生成随机整数? 57个答案

  • 如果你想以相等的概率得到值1或2,那么int temp = (Math.random() <= 0.5) ? 1 : 2; int temp = (Math.random() <= 0.5) ? 1 : 2; 是你所需要的全部。 这给你一个1或2,每个概率为1/2。


    int tmp = (int) ( Math.random() * 2 + 1); // will return either 1 or 2
    

    Math.random()[0, 1) Math.random()返回数字。 由于(int)总是向下舍入(楼层),所以实际上需要范围[1,3) ,因此[1,2)将舍入为1, [2,3)将舍入为2。


    尝试这个。

    int tmp = (int)( Math.floor( Math.random() + 1.5 ) )
    

    Math.random() -> [0, 1)

    Math.random() + 1.5 -> [1.5, 2.5)

    所以,当你发言时,它是1或2相等
    因为[1.5, 2.5) = [1.5, 2) U [2, 2.5)
    length([1.5, 2)) = length([2, 2.5)) = 0.5

    链接地址: http://www.djcxy.com/p/17671.html

    上一篇: Generating a number between 1 and 2 java Math.random()

    下一篇: how to generate a random long with 4 digits in java?