【三种颜色各9个小球放在一起抽取9个小球计算概率】

摘要

看到一个小游戏, 分别有三种颜色的小球各 9个, 总共27个,从中任意拿出9个, 可能出现的情况,再不考虑颜色的情况下分别出现的组合的概率计算,使用python完成

计算C(m, n) 和A(m, n)

首先 python中有个math 模块,这个模块可以分别计算出 排列和组合

#排列

def getPerm(m, n):
	return math.perm(m, n)

#组合

def getComb(m, n):
	return math.comb(m, n)

数学公式

此问题中从27个小球中取出9个小球,可以分为三类 来讨论
第一种, 三个数字相同,即3, 3,3
第二种, 三个数字都不相同, 例如 0, 1 , 8
第三种, 三个数字中任意两个相同, 例如, 4, 4 ,1
第一种情况下的时候, 概率为P = C(9,N)xC(9,N)xC(9,N)x A(3, 0) / C(27, 9)
第二种情况下的时候, 概率为P = C(9,N1)xC(9,N2)xC(9,N3)x A(3, 3) / C(27, 9)
第三种情况下的时候, 概率为P = C(9,N1)xC(9,N1)xC(9,N2)x A(3, 1) / C(27, 9)

数学公式的代码实现

  1. 计算分母
def CalculateProbability_denominator(all_nums, out_nums):
    return math.comb(all_nums, out_nums)
  1. 计算分子
def CalculateProbability_molecule(num1, num2, num3, fixed_num):
    temp1 = math.comb(fixed_num, num1)
    temp2 = math.comb(fixed_num, num2)
    temp3 = math.comb(fixed_num, num3)

    # 假设 三种颜色都不一样
    if num1 != num2 != num3<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值