Py3 排列組合

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)]

完結。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章