python排列组合,python求排列组合的函数
1.数组组合
从N个球中抽取m个球,定时抽取。重复提取的次数是多少?
从N个球中抽取m个球,有规律地抽取。不重复抽取的次数是多少?
数组:
从N个球中抽取m个球,抽取的顺序不对。不重复提取的数量是多少?
组合:
从N个球中抽取m个球,而且是无序抽取的。重复提取的次数是多少?
以上四种情况是最常见的排列组合。建议从有无顺序和有无重复两个维度来考虑、理解和背诵。
用Python表示数组组合。
在使用python计算数组组合之前,必须计算阶乘。您可以使用数学库中的阶乘函数或以下递归函数:
德福工厂(n):
计算阶乘
:参数n:数据
:返回:
如果n==1:
1次返回
否则:
Return * basic (n-1))。
下面的表达式:
defmy_permutation(n,k):
不重复地计算有序数组的数量
:param n:示例
:param k:提取
:return:数组数
返回因子(n )//因子(n-k))。
根据组合公式:
defmy_combination(n,k):
计算无序和不重复组合的数量。
:param n:示例
:param k:提取
:return:组合数
Return (n)阶乘(n-k) * Fault (k) k))
3.例子
3.1生日问题
如果一个班有n个人,一年有365天,每一天都是生日的概率相等,那么至少有两个生日是同一天的概率是多少?
这个问题是全数组问题,需要反过来考虑。写好公式后,直接输入python进行计算。
频率差(n):
计算至少两个生日在同一天的概率
:param n:类别号
:返回:概率
1-阶乘(365阶乘)365-n) * 365 * * n))
# prob=出生(50)
#print(:2f ) %(。格式(概率* 100)))
3.2彩票问题
乐透的玩法是35个红球中选5个,12个红球中选2个。如果你全部赢了,你将获得一等奖。顺便问一下,中一等奖的概率有多大?
这个问题是一个组合问题,因为获胜的可能性是一,所以分子是1,分母是所有的组合。
defprize(:)
1/(我的组合(35,12)我的组合(12,2))
prob=奖(
打印((:15f ) %)。格式(prob0)))
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。