#! /usr/bin/python# -*- codage : utf-8 -*-import randomclass CDispatch : def __init__(self,sum,count) : self.sum = sum self.count=count #print 'init here sum =' ,somme,',compte ='"/> #! /usr/bin/python# -*- codage : utf-8 -*-import randomclass CDispatch : def __init__(self,sum,count) : self.sum = sum self.count=count #print 'init here sum =' ,somme,',compte ='">

Maison  >  Article  >  développement back-end  >  Explication détaillée de l'exemple de code pour implémenter l'algorithme de génération aléatoire d'enveloppes rouges en Python

Explication détaillée de l'exemple de code pour implémenter l'algorithme de génération aléatoire d'enveloppes rouges en Python

高洛峰
高洛峰original
2017-03-24 17:12:262984parcourir

Les exemples sont les suivants :

#! /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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn