JAVA算法——模拟微信红包
/* * 微信红包 */ public void weChatRedPacket(double money, int people){ DecimalFormat df = new DecimalFormat("######0.00"); int sPeople = people;
//创建保存每个红包金额的集合 ArrayList al = new ArrayList(); double a[] = new double[people]; if(people == 1){ a[0]=money; al.add(money); }else{ for(int i=0; i <people; i++){ int f = people-1; if(i==f){ a[i]=Double.parseDouble(df.format(money)); al.add(a[i]); }else{ a[i]=Double.parseDouble(df.format(Math.random()*(money/sPeople))); al.add(a[i]); money=money-a[i]; sPeople=sPeople-1; } } }
//打乱集合顺序 Collections.shuffle(al); System.out.println(al); }