面试题:Math.random()可以产生一个在0和1之间的数,请写出产生一个在125-175之间整数的语句。

题目:Math.random()可以产生一个在0和1之间的数,请写出产生一个在125-175之间整数的语句。

方法:

int a = (int)(Math.random()*51)+125;

解释:

Math.random()返回的是[0.0,1.0)之间的double类型的数字,我们使用Math.random()乘以51返回的就是[0.0,51.0)之间的double类型的数字,由于int类型的数据是向0取整的,如果我们对这个集合中的数字进行强制转换,那么(int)(Math.random()*51)返回的就是[0,50]之间的int类型的数字,我们在这个集合之上加上125,返回的就是[125,175]之间的int整型数字。

拓展:

如果不要求使用Math.random(),也可以这样做:

Random random  = new Random();
int a = random.nextInt(51)+125;

解释:

random.nextInt(51)会返回0~50之间的整数,然后该整数加上125,结果正好是125~175之间的数字

你可能感兴趣的:(java学习之路)