双色球 快乐8概率和期望

双色球 快乐8概率和期望

快乐8

def C(m, n):
    ret = 1
    for i in range(n):
        ret *= (m-i) / (i+1)
    return int(ret)
    
def P(m, n, total=80, right=20):
    sum = 0
    if (total <= right): 
        return 0
    error = total - right
    for i in range(0, m+1):
        sum += C(error, i)*C(right, m-i)

    return C(right, n)*C(error, m-n) / sum

def E(m, order):
    e = 0
    classes = len(order)
    if(classes != len(rewards[m-1])):
        print("中奖规则和奖励不匹配!")
        return e
    for i in range(classes, 0, -1):
        p_level = P(m, order[i-1])
        e_level = p_level * rewards[m-1][i-1] / 2
        print("第%d等奖概率:%.10f 期望:%.10f" % (classes-i+1, p_level, e_level))
        e += e_level
    return e  
reward1  = [4.6]
reward2  = [19]
reward3  = [3, 53]
reward4  = [3, 5, 100]
reward5  = [3, 21, 1000]
reward6  = [3, 10, 30, 3000]
reward7  = [2, 4, 28, 288, 10000]
reward8  = [2, 3, 10, 88, 800, 50000]
reward9  = [2, 3, 5, 20, 200, 2000, 300000]
reward10 = [2, 3, 5, 80, 800, 8000, 5000000]

rewards = [reward1, reward2, reward3, reward4, reward5,
           reward6, reward7, reward8, reward9, reward10]

print("选 1: %.10f\n" % E(1,[1]))
print("选 2: %.10f\n" % E(2,[2]))
print("选 3: %.10f\n" % E(3,[2, 3]))
print("选 4: %.10f\n" % E(4,[2, 3, 4]))
print("选 5: %.10f\n" % E(5,[3, 4, 5]))
print("选 6: %.10f\n" % E(6,[3, 4, 5, 6]))
print("选 7: %.10f\n" % E(7,[0, 4, 5, 6, 7]))
print("选 8: %.10f\n" % E(8,[0, 4, 5, 6, 7, 8])) 
print("选 9: %.10f\n" % E(9,[0, 4, 5, 6, 7, 8, 9]))
print("选10: %.10f\n" % E(10,[0, 5, 6, 7, 8, 9, 10]))
结果

第1等奖概率:0.2500000000 期望:0.5750000000
选 1: 0.5750000000

第1等奖概率:0.0601265823 期望:0.5712025316
选 2: 0.5712025316

第1等奖概率:0.0138753651 期望:0.3676971762
第2等奖概率:0.1387536514 期望:0.2081304771
选 3: 0.5758276534

第1等奖概率:0.0030633923 期望:0.1531696152
第2等奖概率:0.0432478913 期望:0.1081197284
第3等奖概率:0.2126354658 期望:0.3189531987
选 4: 0.5802425423

第1等奖概率:0.0006449247 期望:0.3224623478
第2等奖概率:0.0120923380 期望:0.1269695494
第3等奖概率:0.0839350523 期望:0.1259025784
选 5: 0.5753344757

第1等奖概率:0.0001289849 期望:0.1934774087
第2等奖概率:0.0030956385 期望:0.0464345781
第3等奖概率:0.0285379178 期望:0.1426895889
第4等奖概率:0.1298195475 期望:0.1947293213
选 6: 0.5773308970

第1等奖概率:0.0000244026 期望:0.1220127802
第2等奖概率:0.0007320767 期望:0.1054190421
第3等奖概率:0.0086385048 期望:0.1209390678
第4等奖概率:0.0521909667 期望:0.1043819335
第5等奖概率:0.1215742520 期望:0.1215742520
选 7: 0.5743270756

第1等奖概率:0.0000043457 期望:0.1086415167
第2等奖概率:0.0001604552 期望:0.0641820652
第3等奖概率:0.0023667137 期望:0.1041354008
第4等奖概率:0.0183025856 期望:0.0915129280
第5等奖概率:0.0815037015 期望:0.1222555522
第6等奖概率:0.0882662377 期望:0.0882662377
选 8: 0.5789937007

第1等奖概率:0.0000007243 期望:0.1086415167
第2等奖概率:0.0000325925 期望:0.0325924550
第3等奖概率:0.0005916784 期望:0.0591678414
第4等奖概率:0.0057195580 期望:0.0571955800
第5等奖概率:0.0326014806 期望:0.0815037015
第6等奖概率:0.1141051821 期望:0.1711577731
第7等奖概率:0.0637478384 期望:0.0637478384
选 9: 0.5740067060

第1等奖概率:0.0000001122 期望:0.2805297378
第2等奖概率:0.0000061206 期望:0.0244825953
第3等奖概率:0.0001354194 期望:0.0541677421
第4等奖概率:0.0016111431 期望:0.0644457239
第5等奖概率:0.0114793946 期望:0.0286984864
第6等奖概率:0.0514276877 期望:0.0771415316
第7等奖概率:0.0457907008 期望:0.0457907008
选10: 0.5752565180

双色球

salary = [8000000, 200000, 3000, 200, 10, 5]
p = [0, 0, 0, 0, 0, 0]
p[5] = (P(6, 0, total=33, right=6)+P(6, 1, total=33, right=6)+P(6, 2, total=33, right=6)) / C(16, 1)
p[4] = (P(6, 3, total=33, right=6)) / C(16, 1) + P(6, 4, total=33, right=6)
p[3] = (P(6, 4, total=33, right=6)) / C(16, 1) + P(6, 5, total=33, right=6)
p[2] = (P(6, 5, total=33, right=6)) / C(16, 1)
p[1] = (P(6, 6, total=33, right=6))
p[0] = (P(6, 6, total=33, right=6)) / C(16, 1)

summary_e = 0
for i in range(len(salary)):
    e = p[i] * salary[i] / 2;
    summary_e += e
    print("第%d等奖概率:%.10f 期望:%.10f" % (i+1, p[i], e))
print("总期望:%.10f" % summary_e)
结果

第1等奖概率:0.0000000564 期望:0.2257197752
第2等奖概率:0.0000009029 期望:0.0902879101
第3等奖概率:0.0000091417 期望:0.0137124763
第4等奖概率:0.0004433701 期望:0.0443370068
第5等奖概率:0.0080548102 期望:0.0402740509
第6等奖概率:0.0588925466 期望:0.1472313664
总期望:0.5615625858

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一种开源的机器学习框架,它提供了丰富的工具和函数,可以用于训练和预测模型。要使用PyTorch进行快乐8的预测,我们需要进行以下步骤: 1. 数据准备:收集和准备用于训练和预测的数据。这包括历史开奖数据、特征提取和数据预处理。 2. 模型设计:选择适当的模型结构用于预测快乐8。可以选择传统的统计模型,如线性回归或朴素贝叶斯,也可以选择深度学习模型,如卷积神经网络或循环神经网络。 3. 模型训练:使用准备好的训练数据对选择的模型进行训练。通过调整模型参数和损失函数,使模型能够更好地拟合训练数据。 4. 模型评估:使用另外的评估数据集对训练好的模型进行评估。可以使用各种指标,如准确率、精确度、召回率等,来评估模型的性能。 5. 模型预测:使用经过训练和评估的模型,对新的快乐8数据进行预测。将测试数据输入到模型中,通过模型的输出来预测快乐8的结果。 PyTorch提供了简单而灵活的API,使得以上步骤可以容易地实现。通过使用PyTorch,我们可以快速构建和训练模型,并利用其强大的计算能力来进行快乐8的预测。当然,模型的精确度和性能还取决于数据的质量和预处理方法的选择。因此,要获得更好的预测结果,我们需要仔细选择和设计特征,并对数据进行适当的处理和清洗。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值