C#实现“数学排列”的方法-----P(N,N)
2010-02-03 17:00
691 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication32 { class Program { static int s = 0; static void Main(string[] args) { string strs = "12345"; List<string> list = new List<string>(); Compute(strs, "",list); for (int i = 0; i < list.Count; i++) { Console.WriteLine(list[i]); } Console.WriteLine(s); Console.Read(); } /// <summary> /// 数学排列 /// </summary> /// <param name="num"></param> /// <param name="curnum"></param> public static void Compute( string num,string curnum,List<string> list) { for (int i = 0; i < num.Length; i++) { curnum+= num[i].ToString(); if (num.Length == 1) { list.Add(curnum); s++; } else { string temp=num.Replace(num[i].ToString(),""); Compute(temp,curnum,list); curnum= curnum.Remove(curnum.Length - 1, 1); } } } } }
昨天在JAVA区看到一个类似求数学组合的算法问题,想了想还挺难,没什么思路,随便搜了一下,还真有专门算这个算法,是用“回溯法”,今天下午没事,就自己写了个算法,实现了P(R,R)的排列问题,组合回来再写吧
相关文章推荐
- C#2.0纯数学方法递归实现货币数字转换中文
- C#纯数学方法递归实现货币数字转换中文
- C#2.0纯数学方法递归实现货币数字转换中文
- [转]C#纯数学方法递归实现货币数字转换中文
- C#实现M选N的全排列的问题的方法
- C#基于纯数学方法递归实现货币数字转换中文功能详解
- 用数学方法实现排列算法
- C#纯数学方法递归实现货币数字转换中文(转)
- C#纯数学方法递归实现货币数字转换中文
- C#实现组合排列的方法
- C#学习第十一天 实现多态:虚方法、抽象类
- 实现方法 C# button快捷键
- 在asp.net(c#)下实现调用cmd的方法
- C#通过重写ProcessCmdKey方法实现改键
- C#实现HTTP上传文件的方法
- C#应用BindingSource实现数据同步的方法
- C#实现清空回收站的方法
- 在C#(.net)中实现文字按指定的路径排列(沿线排版)
- C#几种模拟自动登录和提交POST信息的实现方法
- C#实现MVC模式简要方法(5)