java随机生成指定范围内的数字
这两天做一个小项目,模拟购买彩票,我们都知道彩票有一种选法就是随机,尽然要随机,那就要产生一定范围的数字。
废话不多说,上代码
生成随机数
// Math.random()产生的是一个双精度数字
double randomNum = Math.random();
System.out.println(randomNum); // 0.29878146803307004
// 所以我们可以让他 random*10; 这里要强转(int)一下
// 就可以生成 0 --- 9 之间的数字了
System.out.println((int)randomNum * 10); // 2
生成指定范围随机数
// 需要一个公式 Math.random()*(n+1-m)+m,在返回[m,n]之间的随机数。
// 随机生成1 - 14 之间的数字包含1 和 14
int min = 1;
int max = 14;
int num = (int)(randomNum * (max + 1 -min) +min);
System.out.println(num);
会用了就写在一个单独的方法里,保存起来进行封装,用的时候调用,传参就行
/**
* 生成随机数
* @param min 指定最小数
* @param max 指定最大数
* @return
* 优化后
*/
public int randomNum(min,max){
return (int)(Math.random*(max + 1 - min) + min);
}