在C 中產生n 個項目的所有k 組合的演算法
當前的任務是創建一個程序,產生並顯示所有可能的組合來自n 個個體的k 個不同的人的組合。這可以使用組合生成演算法來實現,其操作如下:
演算法:
-
使用K 序列初始化位元遮罩前導1: 此位元遮罩表示集合中的前 K個人最初分配給
-
將位元遮罩大小調整為 N 位,並附加 N-K 尾隨 0: 此步驟擴充位元遮罩以覆蓋集合中的所有 n 個人。
-
迭代遍歷位元遮罩的所有可能排列: 每個排列代表K 的不同組合people.
-
對於每個排列:
- 提取位元遮罩中設定位的索引。這些索引代表目前組合的成員。
- 印出組合。
-
重複步驟3,直到用盡所有排列: 這將從集合中產生K 個人的所有可能組合n.
C中的實作:
範例輸出:
以上是如何在 C 中產生 n 個項目的所有 k 個組合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!