这里用到了Math.random()和Math.abs(),分别用于获得随机数和绝对值
/*
* @Author:
* @Description:输出某两个整数之间的一个随机数
* @Date: 2019/5/23
* @Param: [m, n]
* @return: void
**/
public static void randNumBetweenTwoInt(int n, int m){
//首先判断m,n之间是否有整数
if((Math.abs(m-n)) > 1){
//生成一个范围在0 ~ |m-n|之间的数,m,n的大小不确定故取两者的绝对值
//使用Math.abs()获取m-n的绝对值
int rand = 0;
for (int i = 0;i< 100;i++) { //随机产生100个随机数,用于测试
rand = (int)(Math.random()*(Math.abs(m - n) + 1));
//在获得随机数的基础上加上其中最小的一个数
int randNew = rand + Math.min(n,m);
System.out.println(n+"到"+m+"之间的随机数是"+randNew);
}
}else{
System.out.println(n+" ~ "+m+" 之间不存在其他整数!");
}
}
测试结果:
第一种,两个都是正数:n=0;m=5
0到5之间的随机数是2
第二种,两个都是负数:n=-10;m=-20
-10到-20之间的随机数是-15
第三种,一个正数,一个负数:n=5;m=-10
5到-10之间的随机数是-4
第四种,两个数之间没有整数:n=-5;m=-4
-5 ~ -4 之间不存在其他整数!