Powered by:AB_IN 局外人
排列
P1339: 排列
it.permutations(可迭代对象,取出来的元素个数)
第二个参数不填,那么就是全排列。
这个题的4个数都是不一样的。
菜鸡写的这个,可以不止4个数。
def f(x):
if x==1:
return 1
else:
return f(x-1)*x
import itertools as it
n=int(input())
while n>0:
n-=1
s=input().split()
ans=f(len(s)-1)
lst=list(it.permutations(s))#返回一个二维的全排列列表
lst.sort()#排序
for i in range(len(lst)):
if i%ans==0 and i!=0:
print()
print("".join(lst[i]),end=" ")
print();print()
P1328: 字符排列问题
用函数。比如aacc,电脑是不会去重的(认为每个元素都不一样),会出现四个aacc。
这个题每个数可能一样。
import itertools as it
input();n=list(input())
print(len(set(it.permutations(n))))
不用函数。
def f(x):
if x==1:
return 1
else:
return f(x-1)*x
n=int(input())
s=input();ans=1;a=set(s)
for i in a:
ans*=f(s.count(i))
print(int(f(n)/ans))
组合
it.combinations(可迭代对象,取出来的元素个数)
如:
import itertools as it
n=[1,2,3,4]
print(list(it.combinations(n,2)))
#[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
完结。