熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#用回溯法找出n個自然數中取r個數的全排列

2013-11-13 09:58:57  來源: .NET編程 

  回溯法也稱為試探法該方法首先暫時放棄關於問題規模大小的限制並將問題的候選解按某種順序逐一枚舉和檢驗在回溯法中放棄當前候選解尋找下一個候選解的過程稱為回溯

  本實例是用回溯法輸出n個自然數中以r個數全排列代碼如下

  publicvoidArrange(intnintr)

  inti=j;

  strings;

  int[]a=newint[n];

  a[i]=;

  while(true)

  {

  if((a[i]i)<=(nr+))

  {

  if(i==(r))

  {

  s=;

  for(j=;j<r;j++)

  {

  s=s+ConvertToString(a[j])+;

  }

  //MemoLinesAppend(Trim(s));

  ConsoleWriteLine(s);

  a[i]=a[i]+;

  continue;

  }

  i=i+;

  a[i]=a[i]+;

  }

  else

  {

  if(i==)

  {

  break;

  }

  i=i;

  a[i]=a[i]+;

  }

  }


From:http://tw.wingwit.com/Article/program/net/201311/12184.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.