按一定的概率随机出随机数(小白记录)
程序员文章站
2022-03-10 21:54:32
项目场景:按一定的概率随机出随机数例如:项目场景:项目需要每天凌晨0点准时发布,农场操作任务:如浇水,施肥,除草,除虫等,需要按一定的比例随机出每天的任务操作解决方案:提示:获得一个双精度随机数double random = Math.random();大致思路:将1分成100份,按生成数的区间划分数出现的范围如:想要出现1的次数占比40%,生成随机数若小于40,则输出 1实现代码public class RandomTest{ /** * */ public...
项目场景:
按一定的概率随机出随机数
例如:项目场景:项目需要每天凌晨0点准时发布,农场操作任务:如浇水,施肥,除草,除虫等,需要按一定的比例随机出每天的任务操作
解决方案:
提示:获得一个双精度随机数
double random = Math.random();
大致思路:将1分成100份,按生成数的区间划分数出现的范围
如:想要出现1的次数占比40%,生成随机数若小于40,则输出 1
实现代码
public class RandomTest{
/**
*
*/
public int getRandom(){
double a = 0.4;
double b = 0.25;
double c = 0.2;
double d = 0.15;
//获得一个双精度随机数
double random = Math.random();
System.out.println("random:"+random);
if(random<=a){
return 1;
}
if(random > a && random <= a+b){
return 2;
}
if(random > a+b && random <= a+b+c){
return 3;
}
if (random > a+b+c){
return 4;
}else {
return -1;
}
}
public static void main(String[] args) {
double a = 0;
double c = 0;
double d = 0;
double b = 0;
double f = 0;
for( int i = 0; i<1000;i++){
RandomTest randomTest = new RandomTest();
int random = randomTest.getRandom();
System.out.println("输出数:"+random);
if(random==1){
a++;
}
if(random==2){
b++;
}
if(random==3){
c++;
}
if(random==4){
d++;
}
}
System.out.println("1 出现:"+a+" 概率:"+a/(a+b+c+d)*100);
System.out.println("2 出现:"+b+" 概率:"+b/(a+b+c+d)*100);
System.out.println("3 出现:"+c+" 概率:"+c/(a+b+c+d)*100);
System.out.println("4 出现:"+d+" 概率:"+d/(a+b+c+d)*100);
System.out.println("生成次数:"+(a+b+c+d));
}
}
本文地址:https://blog.csdn.net/qq_43641833/article/details/111996801
上一篇: JavaScript设计模式(12)—— 装饰器模式
下一篇: 2020最新Java面试题