c# C(m,n) 排列组合算法
2015-06-04 23:36
621 查看
n从1到m的所有组合:
n以内的所有组合:
static void Main() { string[] arr = new string[] { "a", "b", "c", "d", "e" }; List<string[]> list = new List<string[]>(); foreach (string s in arr) { List<string[]> lst = list.GetRange(0, list.Count); string[] nArr = { s }; list.Add(nArr); foreach (string[] ss in lst) { list.Add(ss.Concat(nArr).ToArray()); } } List<string[]> outList = list.OrderByDescending(p => p.Length).ToList(); outList.ForEach(p => Console.WriteLine(string.Join(",", p))); }
n以内的所有组合:
static void Main() { string[] arr = new string[] { "a", "b", "c", "d", "e" }; int n = 2;//长度为2以内的所有组合 List<string[]> list = new List<string[]>(); foreach (string s in arr) { List<string[]> lst = list.Where(p => p.Length < n).ToList(); string[] nArr = { s }; list.Add(nArr); foreach (string[] ss in lst) { list.Add(ss.Concat(nArr).ToArray()); } } List<string[]> outList = list.OrderByDescending(p => p.Length).ToList(); outList.ForEach(p => Console.WriteLine(string.Join(",", p))); }
相关文章推荐
- CLR.via.C#第三版 读书笔记
- C#中XmlSerializer实现序列化浅析
- C#代码实现邮箱验证C#中及一些常用的正则表达式
- 系列文章——关于C#,你应该知道的2000件事情(002)
- c#自动更新+安装程序的制作
- C#进阶 WPF基础二 布局嵌套、菜单、工具栏、多窗口
- 【EmguCV】C#实现HOG与SVM的几个问题
- C#操作XML小结
- C# 字符串md5加密
- [C#] 汉字转拼音,支持多音字
- [C#] 汉字转拼音,支持多音字
- C#中调用SAPI实现语音合成的2种方法
- 偶尔在网上看到的,相对比较好的c#端订单号生成规则
- C#中调用SAPI实现语音识别的2种方法
- C#利用Renci.SshNet类库实现SFTP协议操作文件
- C# 透明背景Panel, 透明图像, PitureBox透明效果
- C#判断某个软件是否已安装实现代码分享
- C#程序中log4net的应用(一)
- C#中chart控件的用法
- C#中字符串与byte[]相互转换