输出给定集合的所有排列与组合-python
来源:互联网 发布:wampserver 本地域名 编辑:程序博客网 时间:2024/05/15 22:45
输出全部排列:
算法思想如下:假设集合中有元素1...n,对于每一个元素k,使之为排列第一元素,然后递归求其余n-1个元素的全排列。将结果合并,输出即可,可保证无重复,并且结果是升序。代码如下:
'''Created on 2013-4-9@author: shatangju'''def perm(items, n=None): if n == None: n = len(items) for i in xrange(len(items)): v = items[i: i+1] if len(items) == 1: yield v else: rest = items[:i] + items[i+1:] for p in perm(rest, n-1): yield v + p items = [1, 2, 3, 4, 5]for a in perm(items): print a
算法思想如下:假设集合中有元素1...n, 对于每一个元素k,其皆有可能在组合中或不在组合中。所以求出其余n-1个元素的组合后,输出两个结果:含k与不含k。结果保证无重复。代码如下:
'''Created on 2013-4-16@author: shatangju'''def comb(items, n=None): if n is None: n = len(items) for i in xrange(len(items)): v = items[i:i+1] if n == 1: yield v yield [] else: rest = items[i+1:] for c in comb(rest, n-1): yield v+c yield citems = [1, 2, 3, 4, 5]num = 0for combination in comb(items): print combination num+=1print num
- 输出给定集合的所有排列与组合-python
- 集合的排列与组合
- 18 获取给定的序列的所有排列, 组合
- 给定不同数字的集合,返回所有可能的排列。
- 给定一个字符串,输出其所有的可能排列
- 关于组合 - 给定数组,输出所有组合
- 求解所有集合中和为给定值的组合
- js+用递归输出给定数组的所有组合方式
- 输出和为一个给定整数的所有组合
- 多重集合的排列与组合
- 给定字符串的所有排列
- 给定一个集合,输出它的所有子集
- 给定一个无重复元素的集合,输出该集合的全排列
- 根据集合排列出所有可能组合
- 给定可能包含重复的数字的集合,返回所有可能的唯一排列。
- 给定一个数字m和数字n,输出相应的所有排列
- 输出组合排列的方案
- 输出集合中所有数据项组合
- 快速设置CodeBlocks
- javascript生命周期(转):
- FlurryAnalytics for ios
- C++指针学习心得(一)
- GetTickCount函数
- 输出给定集合的所有排列与组合-python
- 关于获取Tomcat和WebSphere的classes目录的绝对路径的问题
- Runloop实现原理
- C#泛型中的new()约束
- JS定时器例子讲解
- Android模拟器快捷键指南---Android Emulator Keyboard Commands
- 动态规划——数组中最长递减子序列
- Sql Server常用函数之统计、算数、字符串函数
- Linux守护进程列表