Python版微信红包分配算法
红包分配算法代码实现发给大家,祝红包大丰收!
#coding=gbk importrandom importsys #printrandom.randint(0,99) #print"====",random.uniform(0,0.99) defcalRandomValue(min,max,total,num): printmin,max,total,num total=float(total) num=int(num) min=0.01 if(numreturn ifnum==1: print"第%d个人拿到红包数为:%.2f"%(num,total) return i=1 total_money=total #rtotal=(total*100-min*num*100)/100 while(imax=total_money-min*(num-i) k=int((num-i)/2) ifnum-ik=num-i max=max/k monney=random.randint(int(min*100),int(max*100)) monney=float(monney)/100 total_money=total_money-monney print"第%d个人拿到红包数为:%.2f,余额为:%.2f"%(i,monney,total_money) i+=1 print"第%d个人拿到红包数为:%.2f,余额为:%.2f"%(i,total_money,0.0) if__name__=="__main__": min=sys.argv[1] max=sys.argv[2] total=sys.argv[3] num=sys.argv[4] calRandomValue(min,max,total,num)
python2.py0.01102030
0.01102030
第1个人拿到红包数为:1.34,余额为:18.66
第2个人拿到红包数为:1.06,余额为:17.60
第3个人拿到红包数为:1.08,余额为:16.52
第4个人拿到红包数为:0.98,余额为:15.54
第5个人拿到红包数为:0.88,余额为:14.66
第6个人拿到红包数为:0.48,余额为:14.18
第7个人拿到红包数为:0.26,余额为:13.92
第8个人拿到红包数为:0.90,余额为:13.02
第9个人拿到红包数为:0.12,余额为:12.90
第10个人拿到红包数为:0.41,余额为:12.49
第11个人拿到红包数为:0.43,余额为:12.06
第12个人拿到红包数为:0.63,余额为:11.43
第13个人拿到红包数为:0.36,余额为:11.07
第14个人拿到红包数为:0.25,余额为:10.82
第15个人拿到红包数为:1.38,余额为:9.44
第16个人拿到红包数为:0.17,余额为:9.27
第17个人拿到红包数为:0.79,余额为:8.48
第18个人拿到红包数为:0.52,余额为:7.96
第19个人拿到红包数为:0.44,余额为:7.52
第20个人拿到红包数为:1.15,余额为:6.37
第21个人拿到红包数为:0.13,余额为:6.24
第22个人拿到红包数为:0.76,余额为:5.48
第23个人拿到红包数为:1.32,余额为:4.16
第24个人拿到红包数为:0.80,余额为:3.36
第25个人拿到红包数为:0.16,余额为:3.20
第26个人拿到红包数为:0.27,余额为:2.93
第27个人拿到红包数为:1.82,余额为:1.11
第28个人拿到红包数为:0.45,余额为:0.66
第29个人拿到红包数为:0.27,余额为:0.39
第30个人拿到红包数为:0.39,余额为:0.00
以上所述就是本文的全部内容了,希望大家能够喜欢。