代码之家  ›  专栏  ›  技术社区  ›  Joseph Ferris

确定不同长度变化的算法

  •  1
  • Joseph Ferris  · 技术社区  · 14 年前

    A、B、C、D

    我需要计算在以下两个条件下可以对其进行的变更数量:

    综上所述,这意味着对于一个四对象序列,我只能有一个符合条件的序列(因为顺序不被认为是唯一的):

    • ABCD

    四对象池中的三对象组合有四种变体:

    四对象池中的两对象组合有六种变体:

    最简单的一个,如果在同一时间采取:

    • A、 B、C和D

    如有任何建议,将不胜感激。

    2 回复  |  直到 14 年前
        1
  •  4
  •   danben    14 年前

    (0, (2^n-1)) .

    1 位,则相应的元素属于集合。

    旁白:这叫做 power set .

        2
  •  1
  •   Niki Yoshiuchi    14 年前

    你所想的叫做组合,一组n个项目中的组合k的个数是

    n!/((n-k)!k!)
    

    当提到组合的数量时,通常会说“n选择k”,因为实际上是从n中“选择”k元素。

    编辑:啊,我有点误读了。您需要所有可能组合的计数,本质上是sum(nCk,k=0到n)。这是幂集,为2^n(如果不想计算空集,则为2^n-1)。