罐子里有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)