#! /usr/bin/python# -*- コーディング: utf-8 -*-import randomclass CDispatch: def __init__(self,sum,count): self.sum = sum self.count=count #print 'init here sum =' ,合計,',カウント ='"/> #! /usr/bin/python# -*- コーディング: utf-8 -*-import randomclass CDispatch: def __init__(self,sum,count): self.sum = sum self.count=count #print 'init here sum =' ,合計,',カウント ='">

ホームページ  >  記事  >  バックエンド開発  >  Pythonで赤い封筒のランダム生成アルゴリズムを実装するサンプルコードの詳細説明

Pythonで赤い封筒のランダム生成アルゴリズムを実装するサンプルコードの詳細説明

高洛峰
高洛峰オリジナル
2017-03-24 17:12:262984ブラウズ

インスタンスは次のとおりです:

#! /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で赤い封筒のランダム生成アルゴリズムを実装するサンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。