关于Java里产生1-6随机数的方法

Python021

关于Java里产生1-6随机数的方法,第1张

我认为2种方法产生的1~6的几率是相等的,都为1/6.

第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.

另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.

Random rm = new Random()

int i = rm.nextInt(18)

int n = 0

if(i >8){

n = rm.nextInt(10)+1

}else if(i >2&&i <= 8){

n = rm.nextInt(11) + 10

}else if(i<=2){

n = rm.nextInt(11) + 20

}

这样生成的整数n是 3/6的概率在1-10之间,2/6的概率是在10-20之间,1/6的概率是在20-30之间(这种都是伪随机,但尽量接近概率)

你看看这样行不行

希望对你有帮助