combinatorics

    0熱度

    3回答

    不確定該示例(也不是實際用例)是否符合NP-Complete,但是我想知道最Python的Python方法下面假設這是可用的算法。 假設你有: class Person: def __init__(self): self.status='unknown' def set(self,value): if value: self.status='ha

    5熱度

    2回答

    給定一個包含重複元素的集合S,如何確定S的所有可能子集的總數,其中每個子集都是唯一的。例如,假設S = {A,B,B}並且設K是所有子集的集合,則K = {{},{A},{B},{A,B},{B ,B},{A,B,B}},因此| K |另一個例子是如果S = {A,A,B,B},那麼K = {{},{A},{B},{A,B},{A,A} ,{B,B},{A,B,B},{A,A,B},{A,A,B,

    2熱度

    2回答

    給定是大小爲n的集合S,其被劃分爲大小爲n1,...,nk的類(s1,...,sk)。當然,它認爲n = n1 + ... + nk。 我有興趣瞭解我可以組合這些分區元素的方法的數量,以便每個組合都包含每個類的一個元素。 由於我可以從s1中選擇n1個元素,從s2中選擇n2個元素等等,我正在尋找max(n1 * .. * nk)對於任意n1,.. nk的解決方案,它認爲n1 + .. + NK =

    1熱度

    2回答

    我需要一種算法,它可以將排列中的運行映射到單個數字,但也會減少後續數字。 因此,運行是按排序和按序排列的序列中的一組數字。在列表中,1; 2; 3; 5; 6; 4有兩次運行,1; 2; 3和5; 6。我想用一個數字來代替它們,這是最小的,所以如果在移除運行之後,我們有4個元素的置換,置換使用數字1 ... 4.在上面,我們必須減少兩次運行。第一次運行將是1,4,轉換爲2,[5; 6]轉換爲3,以