public class InsureServiceRandomUtil {
/**
* 0 道路救援(拖车) 出现的概率为5%
*/
public static double rate0 = 0.05;
/**
* 1 安全检测 出现的概率为5%
*/
public static double rate1 = 0.05;
/**
* 2 代驾服务 出现的概率为55%
*/
public static double rate2 = 0.55;
/**
* 3 年检审车 出现的概率为5%
*/
public static double rate3 = 0.05;
/**
* 4 道路救援(紧急加水) 出现的概率为5%
*/
public static double rate4 = 0.05;
/**
* 5 道路救援(搭电) 出现的概率为5%
*/
public static double rate5 = 0.05;
/**
* 6 道路救援(轮胎充气) 出现的概率为5%
*/
public static double rate6 = 0.05;
/**
* 7 道路救援(送冷却液) 出现的概率为5%
*/
public static double rate7 = 0.05;
/**
* 8 道路救援(更换轮胎) 出现的概率为5%
*/
public static double rate8 = 0.05;
/**
* 9 事故救援(拖车) 出现的概率为5%
*/
public static double rate9 = 0.05;
/**
* Math.random()产生一个double型的随机数,判断一下
* 例如0出现的概率为5%,则介于0到0.05中间的返回0
*
* @return int
*/
public static int PercentageRandom() {
double randomNumber;
randomNumber = Math.random();
if (randomNumber >= 0 && randomNumber <= rate0) {
return 0;
} else if (randomNumber >= rate0 / 100 && randomNumber <= rate0 + rate1) {
return 1;
} else if (randomNumber >= rate0 + rate1 && randomNumber <= rate0 + rate1 + rate2) {
return 2;
} else if (randomNumber >= rate0 + rate1 + rate2 && randomNumber <= rate0 + rate1 + rate2 + rate3) {
return 3;
} else if (randomNumber >= rate0 + rate1 + rate2 + rate3 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4) {
return 4;
} else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5) {
return 5;
}else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 +rate6) {
return 6;
}else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7) {
return 7;
}else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8) {
return 8;
}else if (randomNumber >= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 && randomNumber <= rate0 + rate1 + rate2 + rate3 + rate4 + rate5 + rate6 + rate7 + rate8 + rate9) {
return 9;
}
return -1;
}
/**
* 测试主程序
*
* @param agrs
*/
public static void main(String[] agrs) {
int i = 0;
InsureServiceRandomUtil a = new InsureServiceRandomUtil();
for (i = 0; i <= 100; i++){//打印100个测试概率的准确性
System.out.println(a.PercentageRandom());
}
}
}
数字(0-9)按概率输出
猜你喜欢
转载自blog.csdn.net/weixin_43355449/article/details/103297586
今日推荐
周排行