紅包分配算法代碼實現(xiàn)發(fā)給大家,祝紅包大豐收!
#coding=gbkimport randomimport sys#print random.randint(0, 99)#print "====", random.uniform(0, 0.99)def calRandomValue(min, max, total, num):print min, max, total, numtotal = float(total)num = int(num)min = 0.01if(num returnif num == 1:print "第%d個人拿到紅包數(shù)為:%.2f" %(num, total)returni = 1total_money = total#rtotal = (total*100 - min*num*100)/100while( i max = total_money - min*(num- i)k = int((num-i)/2)if num -i k = num -imax = max/kmonney = random.randint(int(min*100), int(max*100))monney = float(monney)/100total_money = total_money - monneyprint "第%d個人拿到紅包數(shù)為:%.2f, 余額為: %.2f" %(i, monney, total_money)i += 1print "第%d個人拿到紅包數(shù)為:%.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個人拿到紅包數(shù)為:1.34, 余額為: 18.66
第2個人拿到紅包數(shù)為:1.06, 余額為: 17.60
第3個人拿到紅包數(shù)為:1.08, 余額為: 16.52
第4個人拿到紅包數(shù)為:0.98, 余額為: 15.54
第5個人拿到紅包數(shù)為:0.88, 余額為: 14.66
第6個人拿到紅包數(shù)為:0.48, 余額為: 14.18
第7個人拿到紅包數(shù)為:0.26, 余額為: 13.92
第8個人拿到紅包數(shù)為:0.90, 余額為: 13.02
第9個人拿到紅包數(shù)為:0.12, 余額為: 12.90
第10個人拿到紅包數(shù)為:0.41, 余額為: 12.49
第11個人拿到紅包數(shù)為:0.43, 余額為: 12.06
第12個人拿到紅包數(shù)為:0.63, 余額為: 11.43
第13個人拿到紅包數(shù)為:0.36, 余額為: 11.07
第14個人拿到紅包數(shù)為:0.25, 余額為: 10.82
第15個人拿到紅包數(shù)為:1.38, 余額為: 9.44
第16個人拿到紅包數(shù)為:0.17, 余額為: 9.27
第17個人拿到紅包數(shù)為:0.79, 余額為: 8.48
第18個人拿到紅包數(shù)為:0.52, 余額為: 7.96
第19個人拿到紅包數(shù)為:0.44, 余額為: 7.52
第20個人拿到紅包數(shù)為:1.15, 余額為: 6.37
第21個人拿到紅包數(shù)為:0.13, 余額為: 6.24
第22個人拿到紅包數(shù)為:0.76, 余額為: 5.48
第23個人拿到紅包數(shù)為:1.32, 余額為: 4.16
第24個人拿到紅包數(shù)為:0.80, 余額為: 3.36
第25個人拿到紅包數(shù)為:0.16, 余額為: 3.20
第26個人拿到紅包數(shù)為:0.27, 余額為: 2.93
第27個人拿到紅包數(shù)為:1.82, 余額為: 1.11
第28個人拿到紅包數(shù)為:0.45, 余額為: 0.66
第29個人拿到紅包數(shù)為:0.27, 余額為: 0.39
第30個人拿到紅包數(shù)為:0.39, 余額為: 0.00
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
新聞熱點
疑難解答
圖片精選