• 大小: 1KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: C/C++
  • 标签: 八皇后  n皇后  爬山  

资源简介

可自定义皇后数量,采用爬山法求解,已经vs编译通过,可运行

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
using namespace std;

#define size 2000 
int board[size];//记录棋盘状况的数组 
//记录冲突的数组 
int ru[size*2];//右上 
int rd[size*2];//右下 

int recran[size]; 
int n; int rec[size]; 

int f() 
{//计算冲突的函数 
int ir=0; 
memset(ru0sizeof(ru)); 
memset(rd0sizeof(rd)); 
for(i=0;i
ru[board[i]-i+n]++; 
rd[board[i]+i]++; 

for(i=0;i<2*n;i++) 

if(ru[i]>1) r+=ru[i]-1; 
if(rd[i]>1) r+=rd[i]-1; 

return r; 


//生成x个不重复的随机数,放入board数组 
void randgen(int x) 

int itemp; 
memset(recran0sizeof(int)*(n+1)); 
for(i=0;i
do 

temp=rand()%x; 

while(recran[temp]==1); 

评论

共有 条评论