Combination

Code

Method 1:

def combine(A):
    return [x for i in range(len(A)) for x in combineHelper(A, 0, i+1)]

def combineHelper(A, p, n):
    if n == 0:
        return [()]
    else:
        return [(A[i],) + x for i in range(p, len(A)) if (i + n - 1) < len(A) for x in combineHelper(A, i+1, n-1)]

def main():
    A = [3, 1, 2]
    print('the combination of A is: ', combine(A))

main()

Method 2:

def combine(A, p, n):
    if n == 1:
        return [(A[p],)]
    else:
        B = combine(A, p+1, n-1)
        return [(A[p],) + x for x in B] + [(A[p],)] + B

def main():
    A = [3, 1, 2]
    print('the combination of A is: ', combine(A, 0, len(A)))

main()

Mathematical formula

![][1]
[1]: http://latex.codecogs.com/gif.latex?2n=(1+1)n=\sum_{k=0}^n\binom{n}{k}

![][2]
[2]: http://latex.codecogs.com/gif.latex?\binom{n}{m}=\frac{n!}{m!(n-m)!}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 湖面结冰了 飘落的雪花 哭着告诉我: 湖面结冰了 厚厚的一层像极了 雪糕却不是 呼啸的北风 凑到我耳边 这样问我:...
    吃肉的小肥羊阅读 422评论 0 1
  • 能拴牢一个女人的,未必是金钱,也未必是爱情,而是呵护。享受某个人的照顾,的确是会上瘾的。这就是为什么“爱你...
    Rachel_45af阅读 113评论 0 0
  • api:用于存放 请求数据的JS文件 assets:用于存放公共资源参数 comm:用于存放一些常用的组件 com...
    卖单车阅读 221评论 0 0