日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了列表列的笛卡爾積的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個問題,這實際上是一個一般的編程問題,但我的實現是用Java實現的,所以我將通過這種方式提供我的示例

我有一個這樣的類:

public class Foo {
    LinkedHashMap<String, Vector<String>> dataStructure;

    public Foo(LinkedHashMap<String, Vector<String>> dataStructure) {
        this.dataStructure = dataStructure;
    }

    public String[][] allUniqueCombinations() {
        //this is what I need to do
    }
}

我需要從LinkedHashMap生成一個嵌套數組,該數組表示LHM中所有值的每個唯一組合。例如,如果我的LHM看起來像這樣(偽代碼,但我認為您可以理解..):

{"foo" => ["1","2","3"], "bar" => ["3","2"], "baz" => ["5","6","7"]};

那么我的String[][]應該是這樣的:

{
   {"foo","bar","baz"},
   {"1","3","5"},
   {"1","2","5"},
   {"1","3","6"},
   {"1","2","6"},
   {"1","3","7"},
   {"1","2","7"},
   {"2","3","5"},
   {"2","2","5"},
   {"2","3","6"},
   {"2","2","6"},
   {"2","3","7"},
   {"2","2","7"},
   {"3","3","5"},
   {"3","2","5"},
   {"3","3","6"},
   {"3","2","6"},
   {"3","3","7"},
   {"3","2","7"},
}

我認為這些都是我手工制作的(顯然),所以我可能遺漏了一套,但我認為這說明了我正在嘗試做的事情。只要所有獨特的組合都存在,每套游戲的順序并不重要。同樣需要說明的是,您不知道LHM中有多少元素,也不知道后續的每個向量中有多少元素。我已經找到了與以下情況相匹配的答案:您需要單個數組中所有元素的所有唯一組合,但沒有一個完全符合這種情況。

更新:我將類型更改為字符串,因為我的真實示例實際上是字符串。我試圖使用整數使該示例更具可讀性,但到目前為止我得到的答案不能很好地轉換為字符串。所以,是的,它們是數字,但在我的實際情況中,它們將是除了使用此特定應用程序的人之外對任何人都沒有多大意義的字符串。所以,這只是它的一個抽象。

推薦答案

嘗試如下:

public static void generate(int[][] sets) {
    int solutions = 1;
    for(int i = 0; i < sets.length; solutions *= sets[i].length, i++);
    for(int i = 0; i < solutions; i++) {
        int j = 1;
        for(int[] set : sets) {
            System.out.print(set[(i/j)%set.length] + " ");
            j *= set.length;
        }
        System.out.println();
    }
}

public static void main(String[] args) {
    generate(new int[][]{{1,2,3}, {3,2}, {5,6,7}});
}

哪個將打印:

1 3 5
2 3 5
3 3 5
1 2 5
2 2 5
3 2 5
1 3 6
2 3 6
3 3 6
1 2 6
2 2 6
3 2 6
1 3 7
2 3 7
3 3 7
1 2 7
2 2 7
3 2 7

我基于(我相信)Knuth的一本TAOCP書實現了上面的算法(在評論@chikitin中有更具體的參考:它在Knuth,Addison Wesley著的

分享到:
標簽:列表 笛卡爾
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定