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

zec*_*eck 4 java random math

我正在使用导入的math.random()类创建1到2之间的数字范围.

这是我到目前为止的工作方式,但我看不出它是如何工作的:

int tmp = (int)(Math.random()*1)+1;
Run Code Online (Sandbox Code Playgroud)

任何人都知道这是否真的可以达到范围?如果没有..那么什么

编辑:寻找数字1或2.

pjs*_*pjs 8

如果您希望值1或2的概率相等,那么int temp = (Math.random() <= 0.5) ? 1 : 2;就是您所需要的.这给你一个1或2,每个概率为1/2.


poi*_*oae 5

int tmp = (int) ( Math.random() * 2 + 1); // will return either 1 or 2
Run Code Online (Sandbox Code Playgroud)

Math.random()从 返回数字[0, 1)。因为(int)总是向下舍入(地板),您实际上需要 range [1,3),因此[1,2)将舍入为 1 并将[2,3)舍入为 2。