*java用Math.random, 随机数控制范围问题

资料:

(1)高级软件工程师:

https://zhidao.baidu.com/hangjia/profile/ahcc08?ie=gbk

详解:

这是一段程序中的代码:

int ran = (int)(Math.random()*8)+1;

解析:Math.random()的取值应该是0-1(事实上取不到0和1)之间的随机小数,乘以8之后应该是0-8之间的随机小数,也就是0.****到7.****之间的小数(大于0而小于8),经过int类型转换之后,应该是0-7之间的随机整数,所以"+1"之后就会得到1-8之间的整数。