虚拟数据构造

2 篇文章 0 订阅
 //已知某月的总数据和天数,却不知每天的具体数据,打算虚拟时可采用如下代码 
 public static void main(String[] args) {
     xn(35050,31,300);
    }
    //toatl总数,day天数,fl_oat浮动范围
    public static void xn(int total,int day,int fl_oat){
        int i1 = total / day;

        int min=i1-fl_oat;int max=i1+fl_oat;
        int sum=0;
        List<Integer>nums= new ArrayList<>();
        for(int k=0;k<day;k++) {
            int i = (int) (Math.random() * max) + min;
            nums.add(i);
            sum+=i;
        }

            int zz=sum-total;
             int pp = 0-(zz / day);

        int sum1=0;

        for (Integer xx:nums){

            sum1+=xx+pp;
        }
        int i = total - sum1;
        int sum2=0;
        int count=Math.abs(i);
        int cc=i/count;
        for (Integer xx:nums){
            if(count-->0){
                System.out.println(xx+pp+(cc));
                sum2+=xx+pp+(cc);
            }else {
                System.out.println(xx+pp);
                sum2+=xx+pp;
            }

    }
        System.out.println(sum2+";"+total);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值