[記錄] python 排列組合程式
python 版本 2.7 使用流程: 輸⼊n (⼀一個陣列) 輸⼊k (做n取k的排列組合⽤用的值) 輸⼊mode (想要呈現的模式) 看到結果 模式mode有 1. permutations (p): 列出n取k之所有排列 2. combinations (c): 列出n取k之所有組合 3. all permutations (ap): 列出從 n取1 到 n取n 之所有排列 4. all combinations (ac): 列出從 n取1 到 n取n 之所有組合 5. random permutations (rp): 隨機列出一組n取k之排列 6. random combinations (rc): 隨機列出一組n取k之組合 完整code: # coding=UTF-8 # permutation C n 取 k # input 一串 sequence # output 1. 所有組合 2. 隨機發其中一組給你 # 白話文:實作排列組合當中的排列 n 個相異物拿出K個排成一列 import math import random import itertools n = raw_input("Input n: ") #這裏接到的資料型態是 string k = raw_input("Input k: ") n = n.split(',') # 將input string n 轉換成 array nl = len(n) # n array的長度 # 做一個防呆機制,如果要抽樣的 k 比array裡面的元素還要多,那就請使用者再輸入一次 while int(k) > nl: print "Error input! k must smaller or equal to n:" k = raw_input("Input k: ") # 防呆機制 done mode = raw_input("select mode: all permutations(ap), all combinations(ac), permutations(p), ...