下一章 上一章 目录 设置
5、排列组合Anm全排、Cnm选排 ...
-
数学上的Anm用python实现
def t_a():
lst=[1,2,3]
k=3
result = []
tmp = [0] * k
def next_num(a, ni=0):
if ni == k:
result.append(copy.copy(tmp))
return
for lj in a:
tmp[ni] = lj
b = a[:]
b.pop(a.index(lj))
next_num(b, ni + 1)
next_num(lst, 0)
print(result)
输出结果:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
数学Cnm用python实现
def t_c():
lst = [1, 2, 3]
l=2
result = []
tmp = [0]*l
length = len(lst)
def next_num(li=0, ni=0):
if ni == l:
result.append(copy.copy(tmp))
return
for lj in range(li,length):
tmp[ni] = lst[lj]
next_num(lj+1, ni+1)
next_num()
print(result)
输出结果:[[1, 2], [1, 3], [2, 3]]