2015年玩得最疯狂的应该是微信红包,在家无聊也抢了不少。闲来无事,顺便写了红包的随机算法,其实挺简单的
public class WxAlgorithm{
/**
* @param moneySum 输入总金额
* @param redNum 输入红包数量
*/
private static void wxAlgorithm(double moneySum, int redNum) {
// 设置最小的金额
double moneyMin = 0.01;
Random random = new Random();
//精确小数点2位
NumberFormat formatter = new DecimalFormat("#.##");
for (int i=1;i<redNum;i++)
{
//随机一个数,数值范围在最小值与余额之间
String money = formatter.format(random.nextDouble() * (moneySum - moneyMin) + moneyMin);
//数值转换
moneySum = Double.valueOf(formatter.format(moneySum - Double.valueOf(money)));
System.out.println("第"+i+"个红包:" + money + "元 ,余额:" + moneySum);
}
System.out.println("最后个红包:" + moneySum + "元 ,余额:" + (moneySum - moneySum));
}
public static void main(String[] args) {
wxAlgorithm(10.26, 9);
}
}
OK了,本人这里写得很简单。
提供个大概思路,麻烦的事,应该就是这个转换吧。代码真粗糙````
未经过调试,不要复制