所有可能的排列考慮這樣的地圖:值的這樣的地圖
Map("one" -> Iterable(1,2,3,4), "two" -> Iterable(3,4,5), "three" -> Iterable(1,2))
我想Iterable
下元素的所有可能的排列的列表,每個關鍵的一個要素。對於這個例子,這將是這樣的:
// first element of "one", first element of "two", first element of "three"
// second element of "one", second element of "two", second element of "three"
// third element of "one", third element of "two", first element of "three"
// etc.
Seq(Iterable(1,3,1), Iterable(2,4,2), Iterable(3,5,1),...)
什麼將是一個很好的方法來實現這一目標?
這不是排列組合。在所有可能的順序中,排列是單個集合,所以像1,2,3; 1,3,2; 2,1,3; 2,3,1; 3,1,2; 3,2,1。你可能意指的是「換位」(第二個索引第一個索引和第一個索引)。 – 2011-05-23 13:14:09
什麼定義了鍵的順序,因爲Map鍵否則沒有排序? – 2011-05-23 13:36:39
@保羅我不希望它被訂購。考慮'Iterable(1,2,3)','Iterable(2,3,1)','Iterable(3,1,2)'和'Iterable(3,2,1)'是相同的。 – folone 2011-05-23 13:58:48