鑑於輸入數組這個集合/數組操作有沒有名字?
和「加入」功能(a,b) => (a+b)
我的代碼返回陣列的以下數組,含有通過將連接功能的各種元素對,同時保持獲得的每個可能的變化順序:
[
[a,b,c,d,e],
[a,b+c,d,e],
[a,b+c+d,e],
[a,b,c+d,e],
[a+b,c,d,e],
[a+b,c+d,e],
[a+b+c,d,e],
[a+b+c+d,e],
[a,b,c,d+e],
[a,b+c,d+e],
[a,b+c+d+e],
[a,b,c+d+e],
[a+b,c,d+e],
[a+b,c+d+e],
[a+b+c,d+e],
[a+b+c+d+e],
]
在視覺上,我想要做的是這樣的:
該代碼有效,但我不知道該怎麼稱呼它 - 並且希望使用一個名稱,熟悉該操作的其他開發人員將會理解該名稱,如果存在這樣的名稱。這不是一個權力集,但它是類似的...這個特定的集合/數組操作有一個名字嗎?
編輯:好的。他們不是排列;排列將全部爲不同順序的5元素陣列[[a,b,c,d,e], [e,d,c,b,a], [a,d,b,c,e], ...]
它們不是分區,因爲任何子集只能包含輸入的相鄰元素。 - 換句話說,分區將允許這樣的:
(這大概源於沒有一組有序的概念純集理論。)
他們不是因爲每個元素組合的輸出只使用輸入集的每個成員一次。
我認爲myArray.OrderedPartitions((a,b) => (a+b))
可能是一個適當的簡潔和解釋性的。
GetPermutations? – KingCronus
爲什麼'[a + b + c + d + e]'缺失? – Landei
@Landei我的錯誤:)編輯了這個問題,以包括缺失的排列。 –