求一好的排列组合算法,一百分相送! 问题是这样的,用户随便输入0-9之间的数字,然后生成这其中的3个数字的所有组合!比如3,5,6则有356,365,536,563等. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://topic.csdn.net/t/20021129/16/1216842.html 1楼的,我想看看C#的,最好是不用常规的递归。cancerser(都是混饭吃,记得要结帖) ( ) 信誉呵呵,确实是3D这样的彩票。目前在做一个在线的彩票分析。前期的图形生成都完成了,现在是在为网友定制 。呵呵 private ArrayList ddd(string[] ss){ ArrayList al=new ArrayList(); int c=ss.Length-3; for(int i=0;i<=c;i++) for(int j=1+i;j<=c+1;j++) for(int k=j+1;k<=c+2;k++) { al.Add(ss[i]+ss[j]+ss[k]); al.Add(ss[i]+ss[k]+ss[j]); al.Add(ss[j]+ss[i]+ss[k]); al.Add(ss[j]+ss[k]+ss[i]); al.Add(ss[k]+ss[i]+ss[j]); al.Add(ss[k]+ss[j]+ss[i]); } return al;}//写着玩的 不知道对不都 ,下班 唉,一颗红星竟然写出如此烂的算法,我是一名电工,软件只是我的爱好!可以用这样的算法!把值赋给三个变量 A,B,C 然后两两交换 交换方法如下,A B C -> B A C -> B C A ->C B A ->C A B -> A C B 什么,问我昨么写,我把方法跟你说了,你还问我昨么写! 伟大的电工程序员 zhaoyixiao() 不要光说不练哦? 先组合,再排列..参与这两篇文章,或许对你有帮助..http://www.vckbase.com/document/viewdoc/?id=1207http://www.cnblogs.com/dah/archive/2006/11/25/572183.html private void arraylist(int a,int b,int c){typedef struct array{ int i,j,k,h; h=i*100+j*10+k; }a[8];for(int i=0;i<6;i++) { a[i].i=a; a[i].j=b; a[i].k=c; }}a,b,c为输入的其中三个数 //最平常的做法估计就是这个了。string str = this.textBox1.Text.Trim();string[] num = str.Split(',');if (num.Length!=3){ MessageBox.Show("输入有误"); return ;}//最好在这里把num的内容排序,这样生成的数字也是排好序的for (int i=0;i<num.Length;i++){ for (int j=0;j<num.Length;j++) { if (i==j) { continue; } for (int z=0;z<num.Length;z++) { if (j==z || i==z) { continue; } Int32 res = 0; try { res = Convert.ToInt32(num[i].Substring(0,1)); res = res*10 + Convert.ToInt32(num[j].Substring(0,1)); res = res*10 + Convert.ToInt32(num[z].Substring(0,1)); } catch { MessageBox.Show("输入有误"); return ; } Console.WriteLine("结果是:{0}",res); } }} 参见我的blog,已经做成类,直接调用! 参见:http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了.. "参见:http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了.."这个是不错!!其实要自己写也不一定很难(但一定是最好的). namespace Testing{public class Combination{ char[] ac; public Combination(char[] ac) { this.ac=ac; } public string[] GetAll() { ArrayList al=new ArrayList(); for (int i=0;i<3;i++) for (int j=0;j<3;j++) for (int k=0;k<3;k++) if (i!=j && j!=k && i!=k && !al.Contains( ac[i].ToString()+ac[j].ToString()+ac[k].ToString() )) al.Add(ac[i].ToString()+ac[j].ToString()+ac[k].ToString()); return (string[] )al.ToArray(typeof(string)); }} class Test { public static void Main(string[] args) {char[] ac=new char[3];try{for (int i=0;i<3;i++) ac[i]=args[i][0];}catch{ Console.WriteLine("please input 3 number between 1 and 9"); return;}Combination com=new Combination(ac);Console.WriteLine("All the combination of ({0}, {1}, {2}) is: ", ac[0],ac[1],ac[2]);foreach (string str in com.GetAll()) Console.WriteLine(str); } }} Session的问题! c# 打开网页 双击.sln 怎么打开default.aspx~(在别人机器械上烤过来的) 如何从指定图片中截取指定的部分,并保存为另一张指定高和宽的图片 在DataGrid里添加下拉菜单并且selected 刚转C#,关于DataSet的问题,请前辈指点 谁能给我一个.NET Remoting的例子 在ASP,NET中,数据库怎样用MD5加密密码,求代码和运用方法 如何在程序中内嵌word,要求是效率高一点,不要比打开word慢很多 SQL server求助 怎么使用上下文菜单呢?我的托盘图标使用的是否右键不出来. log4net的一个问题?
呵呵,确实是3D这样的彩票。目前在做一个在线的彩票分析。前期的图形生成都完成了,现在是在为网友定制 。呵呵
{
ArrayList al=new ArrayList();
int c=ss.Length-3;
for(int i=0;i<=c;i++)
for(int j=1+i;j<=c+1;j++)
for(int k=j+1;k<=c+2;k++)
{
al.Add(ss[i]+ss[j]+ss[k]);
al.Add(ss[i]+ss[k]+ss[j]);
al.Add(ss[j]+ss[i]+ss[k]);
al.Add(ss[j]+ss[k]+ss[i]);
al.Add(ss[k]+ss[i]+ss[j]);
al.Add(ss[k]+ss[j]+ss[i]);
}
return al;
}//写着玩的 不知道对不都 ,下班
把值赋给三个变量 A,B,C 然后两两交换 交换方法如下,A B C -> B A C -> B C A ->C B A ->C A B -> A C B 什么,问我昨么写,我把方法跟你说了,你还问我昨么写! 伟大的电工程序员
{
typedef struct array{
int i,j,k,h;
h=i*100+j*10+k;
}a[8];
for(int i=0;i<6;i++)
{
a[i].i=a;
a[i].j=b;
a[i].k=c;
}
}
a,b,c为输入的其中三个数
{
MessageBox.Show("输入有误");
return ;
}//最好在这里把num的内容排序,这样生成的数字也是排好序的
for (int i=0;i<num.Length;i++)
{
for (int j=0;j<num.Length;j++)
{
if (i==j)
{
continue;
}
for (int z=0;z<num.Length;z++)
{
if (j==z || i==z)
{
continue;
} Int32 res = 0;
try
{
res = Convert.ToInt32(num[i].Substring(0,1));
res = res*10 + Convert.ToInt32(num[j].Substring(0,1));
res = res*10 + Convert.ToInt32(num[z].Substring(0,1));
}
catch
{
MessageBox.Show("输入有误");
return ;
} Console.WriteLine("结果是:{0}",res);
}
}
}
http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了..
http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了.."这个是不错!!其实要自己写也不一定很难(但一定是最好的).
namespace Testing
{
public class Combination
{
char[] ac;
public Combination(char[] ac)
{
this.ac=ac;
}
public string[] GetAll()
{
ArrayList al=new ArrayList();
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
for (int k=0;k<3;k++)
if (i!=j && j!=k && i!=k && !al.Contains( ac[i].ToString()+ac[j].ToString()+ac[k].ToString() ))
al.Add(ac[i].ToString()+ac[j].ToString()+ac[k].ToString());
return (string[] )al.ToArray(typeof(string));
}
}
class Test
{
public static void Main(string[] args)
{
char[] ac=new char[3];
try
{
for (int i=0;i<3;i++)
ac[i]=args[i][0];
}
catch
{
Console.WriteLine("please input 3 number between 1 and 9");
return;
}
Combination com=new Combination(ac);Console.WriteLine("All the combination of ({0}, {1}, {2}) is: ", ac[0],ac[1],ac[2]);
foreach (string str in com.GetAll())
Console.WriteLine(str); }
}}