n皇后问题的随机解法代码实现【DOC精选】.docxVIP

  • 20
  • 0
  • 约2.5千字
  • 约 7页
  • 2017-02-16 发布于江苏
  • 举报

n皇后问题的随机解法代码实现【DOC精选】.docx

n皇后问题的随机解法代码实现【DOC精选】

n皇后问题的随机解法实验要求:运用随机算法和回溯法对皇后问题进行求解。先用随机算法预先对一部分皇后随机出其位置,对剩余的皇后,用回溯法求才出合理的位置。实验步骤:定义初始标记。int *s=new int[n+1];用随机算法求出一部分皇后的位置时,用s进行标记,s[i]=1表示第i个皇后的位置已经确定。Int *x=new int[n+1]; x[i]表示第i个皇后的位置验证皇后的位置是否可行函数(利用标记x),函数代码如下bool place(int x[],int k,int n){int i;for(i=1;i=n;i++)if(x[i]!=0i!=k)if(x[i]==x[k]||abs(x[i]-x[k])==abs(i-k))return false;return true;}随机算法过程。在用户输入皇后个数后,用户可自定义那些皇后先进行定位,也可以停止随机过程,进入到回溯过程。回溯法,(这时要考虑一部分的皇后已确定位置,利用s标记)用print函数输出可行的皇后位置图。代码实现:#include iostream#include ctime#include cstdlib#include math.husing namespace std;bool place(int x[],int k,int n) //判别皇后位置是否可行{int i;for(i=1;i=n

文档评论(0)

1亿VIP精品文档

相关文档