python有直接相应功能的函数
一句话就行
【 在 lambo 的大作中提到: 】
: 标 题: Re: 这种组合算法怎么写?
: 发信站: 水木社区 (Wed May 29 07:12:44 2024), 站内
:
: [Java版]
: static List<String> fullCombination(String[] elems) {
: List<String> fullElements = new ArrayList<>();
: for (String currentElem : elems) {
: ListIterator<String> iter = fullElements.listIterator();
: while (iter.hasNext()) {
: iter.add(iter.next() + currentElem);
: }
: iter.add(currentElem);
: }
: return fullElements;
: }
:
: public static void main(String[] args) {
: String[] elems = {"A", "B", "C", "D"};
: List<String> results = fullCombination(elems);
: System.out.println(results + "\t total elems: " + results.size());
: }
:
:
: [Python版]
: import itertools
: elems = ['a', 'b', 'c', 'd']
: full_combination = []
: for num in range(1, len(elems)+1):
: for subset in itertools.combinations(elems, num):
: full_combination.append("".join(subset))
: print(full_combination)
:
: 【 在 iStudy 的大作中提到: 】
: : a,b,c,d四个对象
: : 我要生成a,b,c,d的全组合===C(4,1)+C(4,2)+C(4,3)+C(4,4)
: : 结果就是输出 {a,b,c,d, ab,ac,ad,bc,bd,cd,abc,abd,acd,bcd,abcd}
: : ...................
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 135.0.251.*]
--
FROM 210.30.193.*