我猜这很简单,但出于某种原因,我无法弄清楚。那么,如何从两个数字中随机选择一个整数。我想随机选择1和2之间的整数。
只需使用标准均匀分布,对其进行抽样,如果小于0.5,则选择一个值,如果大于0.5,则选择另一个值:
int randInt = new Random().nextDouble() < 0.5 ? 1 : 2;
或者你可以使用nextInt
方法,该方法以范围内的上限(不包括)作为输入,并设置偏移量来解决其返回0(最小值)的问题:
int randInt = new Random().nextInt(2) + 1;
int fun(int a, int b) {
Random r = new Random();
if(r.nextInt(2)) return a;
else return b;
}
这将以均匀分布返回a或b。换句话说,如果你运行这个函数N次,期望出现'a'和'b'的次数各为N/2。