Python 实现红包随机分配算法的完整代码与解析
本文详细介绍使用 Python 实现红包随机分配算法的完整代码。通过 CDispatch 类封装核心逻辑,确保总金额与份数严格匹配,并处理最后一份金额的兜底计算。文章包含完整的类定义、循环生成逻辑及测试用例,帮助开发者理解红包金额随机生成的边界条件与实现细节。
以下是具体的代码实现示例:
</pre><pre name="code" class="python">#! /usr/bin/python
# -*- coding: utf-8 -*-
import random
class CDispatch:
def __init__(self,sum,count):
self.sum = sum
self.count=count
#print 'init here sum =',sum,',count =',count
def __del__(self):
pass
#print 'run del the class'
def getListInfo(self):
listInfo=[]
sumMoney = self.sum*100
for num in range(0,self.count):
if(num == self.count -1):
listInfo.append(float('%0.2f'%sumMoney)/100)
break
bigRand=sumMoney+1+num-self.count
#print 'sumMoney=',sumMoney,'num=',num,'self.count=',self.count,'big=',bigRand
try:
a = random.randint(1,int(bigRand))
except:
for i in range(0,num):
print 'listInfo[%d]'%i,'=',listInfo[i]
if num >0:
print 'sumMoney=',sumMoney,'num=',num,'listInfo[num-1]=',listInfo[num-1],'self.count=',self.count,'big=',bigRand
#print 'a=',a
break
sumMoney -=a
listInfo.append(float(a)/100)
return listInfo
for i in range(0,100000):
dispatch = CDispatch(1.05,5)
listGet = dispatch.getListInfo()
print listGet
del dispatch
上述内容即为 Python 实现红包随机生成算法的完整实例,供各位参考。如有任何疑问或建议,欢迎反馈,同时也感谢大家对该平台的支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













