VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#用回朔法去找在n个自然数中取r个数的全排列

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。

  本实例是用回溯法输出n个自然数中以r个数全排列。代码如下:

publicvoidArrange(intn,intr) 
 inti=0,j;
 strings;
 int[]a=newint[n];
 a[i]=1;
 while(true)
 {
   if((a[i]-i)<=(n-r+1))
   {
     if(i==(r-1))
     {
       s="";
       for(j=0;j<r;j++)
       {
         s=s+Convert.ToString(a[j])+",";
       }
       //Memo1.Lines.Append(Trim(s));
       Console.WriteLine(s);
       a[i]=a[i]+1;
       continue;
     }
     i=i+1;
     a[i]=a[i-1]+1;
   }
   else
   {
     if(i==0)
     {
       break;
     }
     i=i-1;
     a[i]=a[i]+1;
   }
 }



相关教程