按一定的概率随机出随机数(小白记录)

项目场景:

按一定的概率随机出随机数
例如:项目场景:项目需要每天凌晨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));
    }
}

你可能感兴趣的:(融智,java)