红包分配算法代码实现发给大家,祝红包大丰收!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#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
以上所述就是本文的全部内容了,希望大家能够喜欢。