簡體   English   中英

如何找到從 k 個子集中選擇一個的組合數

[英]How to find number of combinations of choosing one from k subsets

考慮我們已經設置了 S:

S = {1,2,3,4,5,6}

和 S 的 3 個(比如 k 個)子集:

S_1 = {1,2,3}

S_2 = {2,3,4,5}

S_3 = {1,3,6}

從每個子集中選擇一個元素的案例總數是多少?

不能從不同的子集中挑選相同的元素,並且不考慮順序。

例如,

S_1 = {2},S_2 = {3},S_3 = {6}

S_1' = {3},S_2' = {2},S_3' = {6}

視為相同。

S_1' = {3},S_2' = {3},S_3' = {1}

無效,因為 S_1' 和 S_2' 選擇了相同的元素。

我該如何制定這個?

這個問題類似於計算二分圖完美匹配的數量。

對 model 這樣,構造一個二分圖,其中 A = { 1, ..., k },B 是原始集合 S,當y是集合的成員時,存在從x ∈ A 到y ∈ B 的邊S_x

完美匹配對應於將 A 的每個元素與 B 的不同元素匹配的邊的子集; 對於每個集合S_x,此匹配選擇一個不同的元素yS_x 也就是說,多個不同的匹配可能匹配來自 B 的相同k個元素,這意味着由於在您的問題中未考慮順序而導致的過度計數(即,出於您的目的,從 A 到那些k元素的哪條邊 map 並不重要)。 盡管如此,這些問題非常相似,並且很可能每個問題都可以簡化為另一個問題。

根據這個關於 math.SE 的答案,沒有已知的計算完美匹配的有效算法,因此對於這個類似問題也可能沒有已知的有效算法。 這表明您不太可能比某種回溯搜索做得更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM