微信红包算法

来源:互联网 发布:幼儿园app软件 编辑:程序博客网 时间:2024/04/29 04:51
package com.hongbao.test;


import org.junit.Test;


import java.math.BigDecimal;


/**
 * Created by lkp on 2015/6/15.
 */
public class HongBao {


    @Test
    public void testHonbao(){
        hb(100, 9, 0.01);//金额,个数,最少值
        //zb();
    }
    void hb(double total,int num,double min){
        for(int i=1;i<num;i++){
            double safe_total = (total - (num-i) * min) / (num-i);
            double money = Math.random()*(safe_total-min) + min;
            BigDecimal money_bd = new BigDecimal(money);
            money = money_bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
            total=total-money;
            BigDecimal total_bd = new BigDecimal(total);
            total = total_bd.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println("第"+i+"个红包:"+money+",余额为:"+total+"元");
        }
        System.out.println("第"+num+"个红包:"+total+",余额为:0元");
    }


    void zb(){
        for(int a=0;a<=10000;a++){
            if(a % 1000== 0)
                System.out.println (a);
        }
    }
}
0 0
原创粉丝点击