算法实现:在10个数中选6个数,显示所有组合
2013-03-30 18:18
309 查看
今天从infoq看到一个算法题,于是用python(最近一年改用python做项目了)实现了一下。
算法探讨:在10个数中选6个数,显示所有组合
比如“1,2,3....10”,1到10这10个数,显示他的所有可能组合情况(排列顺序无所谓)
算法探讨:在10个数中选6个数,显示所有组合
比如“1,2,3....10”,1到10这10个数,显示他的所有可能组合情况(排列顺序无所谓)
# -*- coding: utf-8 -*- #!/usr/local/bin/python Count = 0 def combination(data, t, vl): _kk = len(data) for _i in range(_kk-t+1): vl.append(data[_i]) new_data = data[_i+1:] if t-1 == 1: for _j in range(len(new_data)): print ','.join(map(str,vl))+','+str(new_data[_j]) global Count Count += 1 else: combination(new_data, t-1, vl) vl.pop() if __name__ == '__main__': n = 10 # 总数 t = 6 # 选取个数 vl = [] # 用于存放选中的数字 data = range(1, n+1)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] combination(data, t, vl) _count_correct = reduce(lambda x, y: x*y,range(n,n-t,-1)) / reduce(lambda x, y: x*y,range(t,0,-1)) print Count, Count == _count_correct
相关文章推荐
- 【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。
- 用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连
- 用JAVA编写一个算法实现对一个字符数组的所有元素的所有组合
- 比如“1,2,3....10”,1到10这10个数,显示他的所有可能组合情况(排列顺序无所谓)
- pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!
- pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!
- 请用Java实现一个算法:由a-z、0-9组成3位的字符密码,并打印所有可能的密码组合。
- 有趣算法-a到z所有组合情况,期待斧正
- Golang排列组合算法问题之全排列实现方法
- 二叉树的遍历算法实现、以及所有简单操作
- java代码--实现随机输出10个随机数,并显示最大值,最小值
- 高效率的全组合算法(Java版实现)
- C#实现排列组合算法
- Android实现读取SD卡下所有TXT文件名并用listView显示出来的方法
- 10个重要的算法C语言实现源代码
- 小算法:获得一个数的所有可能性组合
- PHP实现的简单排列组合算法应用示例
- 用python实现图形显示“线性回归+梯度下降”算法
- 纯js实现分页 原理:所有数据已加载好,js通过遍历部分显示,实现分页效果
- 从数组中取出n个元素的所有组合(递归实现)