Python 实现红包随机分配算法的完整代码与解析

清欢
清欢
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍使用 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 实现红包随机生成算法的完整实例,供各位参考。如有任何疑问或建议,欢迎反馈,同时也感谢大家对该平台的支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表