紅包分配算法代碼實現發給大家,祝紅包大豐收!
#coding=gbk import random import sys #print random.randint(0, 99) #print "====", random.uniform(0, 0.99) def calRandomValue(min, max, total, num): print min, max, total, num total = float(total) num = int(num) min = 0.01 if(num return if num == 1: print "第%d個人拿到紅包數為:%.2f" %(num, total) return i = 1 total_money = total #rtotal = (total*100 - min*num*100)/100 while( i max = total_money - min*(num- i) k = int((num-i)/2) if num -i k = 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)
python 2.py 0.01 10 20 30
0.01 10 20 30
第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
以上所述就是本文的全部內容了,希望大家能夠喜歡。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
