记一道无聊的题

罐子里有10个A,20个B,和30个C。你每次随机抽出一颗。求当你把所有的A都抽出去后,罐子里至少剩1个B和1个C的概率多少?用random函数暴力模拟

思路很简单,洗乱罐子,找到最后一个A,判断后面有没有B和C即可

import random
def simulate_one_trial():
    candies = ['A'] * 10 + ['B'] * 20 + ['C'] * 30
    random.shuffle(candies)
    #print(candies)
    last_bb_index = len(candies) - 1 - candies[::-1].index('A')
    return 'B' in candies[last_bb_index + 1:] and 'C' in candies[last_bb_index + 1:]
total_trials = 10000
success_count = 0
for _ in range(total_trials):
    if simulate_one_trial():
        success_count += 1
print(success_count / total_trials)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值