利用Python枚举所有的排列情况

2020-06-07  本文已影响0人  数据人阿多

概念

排列组合是组合学最基本的概念。
排列(Permutation),就是指从给定个数的元素中取出指定个数的元素进行排序
组合(Combination)则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序

比如有1、2、3这三个数字,要进行排列,则一共有以下6种情况:

数字比较少的时候,咱们可以直接手动一一列举出来,如果有n个数字,怎么快速计算排列数呢?咱们可以靠已有的认知,自己写出公式。

综合以上情况,那就是n*(n-1)*(n-2)*……*1
(数学其实就是这样,并没有什么高深的公式,就是靠一点一点简单的公式累积起来,只要逻辑严谨,推导过程详细,小白也能看得懂)

以上是对给的所有数字进行排列的情况,而更一般的情况是,给n个球,从中选择m个,计算有多少种排列情况,道理和上面一样,下面直接给出计算公式,不再赘述。

通用公式如下所示:

排列计算公式

Python实现

排列
from itertools import permutations

a=list(range(3))

list(permutations(a))

list(permutations(a,2))

list(permutations(range(3)))

list(permutations(range(3),2))
上一篇 下一篇

猜你喜欢

热点阅读