三九宝宝网宝宝百科宝宝知识

N皇后的算法实现怎么样实现不是同一列同一行等

12月26日 编辑 39baobao.com

[智能疏散系统就是安全出口灯具吗?怎么实现智能]在日常应用中,消防应急照明设备经常存在一些问题,造成当火灾发生时,应急疏散指示标志不能科学、正确地引导群众及时疏散,以至在人员密集的场所发生互相踩踏、群死群伤的情况。因...+阅读

N皇后的回溯算法

会员推荐 阅读1次 2006-1-24

Option Explicit

''N皇后互不攻击问题的回溯算法

Private Sub Command1_Click()

Dim n As Long

Dim i As Long, j As Long

Dim a() As Long

n = CLng(Text1.Text)

ReDim a(1 To n)

For i = 1 To n

a(i) = 1

Next

'*算法实现

'设i-1个皇后已经放好,判断第i个皇后的位置,如果和前面i-1个中的任意一个有攻击,则该皇后向前走一步.

'直到放好为止,如果该行没有位置可放,则表示前i-1个皇后的位置有问题,先将该第i个皇后回到第一列,

'再回溯到第i-1个皇后,将该皇后向前走一步,直到放好为止,如果不行,先将该皇后回一列,再回溯到第i-2个皇后.

'如此,直到所有皇后放好为止.

'---------------------------------------------------------------------------------------------

For i = 2 To n

10:

If a(i) <= n Then

For j = 1 To i - 1

If a(j) = a(i) Or Abs(a(i) - a(j)) = i - j Then a(i) = a(i) + 1: GoTo 10

Next

If i = n Then MsgBox "有解" ''要求多解的话,可以再继续

Else

a(i) = 1

i = i - 1

a(i) = a(i) + 1

If i = 1 Then

If a(i) > n Then MsgBox "无解": Exit Sub

i = 2

End If

GoTo 10

End If

Next

'---------------------------------------------------------------------------------------------

grd.Rows = 0

grd.Cols = 0

grd.Rows = n + 1

grd.Cols = n + 1

For i = 0 To n

grd.TextMatrix(0, i) = i

grd.TextMatrix(i, 0) = i

grd.ColWidth(i) = 225

Next

For i = 1 To n

grd.TextMatrix(i, a(i)) = "*"

Next

End Sub

vae.la

以下为关联文档:

用vc实现usb接口通信编程的一般步骤中国IT实验室 . chinaitlab .com 很多计算机相关书籍 喜欢的朋友可以去瞧瞧;(不过顶一下再走,呵呵) 给出部分书的名称: 精通Visual C++图像编程 MFC中文帮助 MFC程序员的WTL指南...

实现小康生活国家要怎么做立足本职岗位,结合工作实际,有针对性地加强理论学习,就能实现理论对实践的有效指导。这样的理论学习才是有价值的,才是值得提倡的。 其次,根据工作需要,实现知识更新,以全面的素质...

到2020年我国全面实现小康社会哪些条件满足才算小康社会呢第一是小康内涵的界定。小康涵义类似于国际上通用的生活质量的涵义,一般包含三层意思,即物质生活状况,主要内容为食品、衣着、住房、交通等物质条件;生活环境状况,主要指空气是否...

希望大大们教我如何用PPT实现小黑板功能和单选双选判断1.右键单击工具栏,选择控件工具箱.(07版单击工具栏上的开发工具). 2.单击第二个选项(ab),将鼠标移到幻片片上,画出小黑板。 3.双击小黑板,进入编辑窗口.在编辑窗口左下角的属性中,按...

VBA如何在WORD中实现移动表格使用VBA操作Word表格 一、生成表格 Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range Set mRange = ActiveDocument.Range mRange.SetRange Start...

怎么vba实现word表格批量转为excel注:vba偶并不太熟(偶一般是用c#和delphi的),VBA只是稍有了解,以下代码大部分是偶google到的内容拼出来的。。。。。 如下,使用时先更改test下的docpath和xlspath路径设定,docpath即...

请教如何利用VBA实现将一个工作表复制到另一个工作簿中1、首先在桌面创建两个Excel文件,一个企划和一个市场,如图所示。 2、同时打开这两个Excel,这里注意了两个Excel必须同时处于打开状态,如图所示。 3、在市场部Excel中的【市场部1...

n皇后问题的算法# include # include # define MAXN 20 int n,m,good; int col[MAXN+1],a[MAXN+1]; int b[2*MAXN+1],c[2*MAXN+1]; int main() {int j; char awn; printf("输入n:");scanf("%d",&n...

n皇后问题递归算法c: #include <stdio.h> #include <stdlib.h> int result=0; void queen(int *chess,int len,int n){ if(n==len){ result++; }else{ int flag=0; for(int i=0;i<len;i++){ f...

推荐阅读
图文推荐