# coding:utf-8
import random
def main(l):
# 计算权重总数
total = sum([x[1] for x in l])
# 随机获取0到total里的随机数
n = random.uniform(0,total)
num1=0
for k,v in l:
# 1 num1=0 num1+v=10
# 2 num1=10 num1+v=30
# 3 num1=30 num1+v=45
if num1<=n and n<=num1+v:
return k
num1+=v
if __name__ == '__main__':
# 测试纸牌
cart = 'cart2'
# 测试出牌次数
num=10000
count=0
i = 0
while i<=num:
l = [['cart1', 10], ['cart2', 20], ['cart3', 15]]
a=main(l)
if a == cart:
count+=1
i+=1
print 'cart1的概率为:%s'%(float(count)/float(num)*100)
根据权重分配随机抽取纸牌
最新推荐文章于 2024-02-16 23:06:27 发布