根据权重分配随机抽取纸牌

来源:互联网 发布:阿里云平台底层架构 编辑:程序博客网 时间:2024/04/29 16:49
# coding:utf-8import randomdef 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+=vif __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)