看板 C_Sharp 關於我們 聯絡資訊
前幾天所問的排列組合求解問題 再經過這幾天的搜尋後有了初步的答案 找到了一個遞迴的function int elementLevel = -1; public void CalcPermutation(int k) { elementLevel++; permutationValue.SetValue(elementLevel, k); if (elementLevel == numberOfJobs * numberOfMachines) { CheckIfUnique(permutationValue); } else { for (int i = 0; i < numberOfJobs * numberOfMachines; i++) { if (permutationValue[i] == 0) { CalcPermutation(i); } } } elementLevel--; permutationValue.SetValue(0, k); } 當我呼叫這個function的時候 CalcPermutation(0) 參數丟0進去就會把所有組合都弄出來 由於還是很嫩的新手所以對這個function還是有點不懂 那這是針對一條sequence的排列組合 那如果我想延伸至多條的該在哪邊加for迴圈呢? 求解一條的就像 123 → 123、132、213、231、312、321 但想變多條就如 123 123 123 123 → 123 、123 、...以此類推 123 123 132 這看起來好像只需要在原本的code某個地方加個迴圈就可以解決 但是又好像不行 而且我想了很久還是想不到要加在哪裡... 感謝幫忙囉!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.218.73