class RandomTest{
public static void main(String[] args) {
double d1=Math.random();
System.out.println("d1="+d1);
int num1=(int)(Math.random()*101);
System.out.println("num1="+num1);
//拓展,获取1-100之间的整数
int num2=(int)(Math.random()*100)+1;
System.out.println("num2="+num2);
//拓展:获取一个[a,b]范围内的随机整数公式
int a=11,b=29;
int num3=(int)(Math.random()*(b-a+1))+a;
System.out.println("num3="+num3);
}
}
心路历程:
因为random的返回值是一个0.0-1.0之间的随机数。
假定用random*100,会得到随机数为0.0-99.0.
但是考虑到我们要求数值范围在0-100之间,所以使用random*101.得到0.0-101.0
使用强转将范围转为0-100
对于num3的公式来说,其实就是类比去求就可以。
此处留一个问题请教大家。为什么我再num3的运算中,令random*(b+1)的范围也对呢?但是我并没有-a;这个问题我还没想清楚。