LabVIEW论坛
直播中

荣琪

9年用户 689经验值
擅长:可编程逻辑 测量仪表 嵌入式技术
私信 关注
[文章]

LabVIEW Actor Framework学习之N皇后

哈喽大家好,我是Richie,今天继续给大家分享新的一期,欢迎大家来一起共同学习,共同进步。本期重点:
labview OOP为基础,使用AF(Actor Framework)框架来编写程序,在八皇后的基础上(参见我上期的贴子)对N皇后问题进行求解。
N皇后解算5.gif N皇后解算10.gif
简单介绍:
八皇后问题:在8X8的棋盘上,放置8皇后,让她们互不在各自的攻击路线上(即任意两个皇后均不能互相攻击),具体有几种放置方式呢?
注:每个皇后的攻击范围是其所在行、列及全部斜对角。
而本期要将问题扩展为任意(N)个皇后的求解。
N皇后解算9 含Image.gif
大体思路:
求解思路见我上一期的贴子。思路、解法上基本没有什么太大变化。主要是增加了当根据用户指定棋盘大小(Queen个数)后将棋盘自适应个小功能。本期也弥补上个贴子种八皇后的小Bug。
上期Bug位置及本期修改后代码:如果没有修改,当最后一个Queen一次就放置成功的时候,就不会解算其他结果了。
捕获.JPG
********************************************************************
当然,目前使用的这种算法去尝试20个以上皇后的解算是相当相当耗时的~
当放置第19个Queen时,已经不能在很短时间内放置成功了,我们需要给棋盘一定时间才能稳定下来再放置最后一个Queen。
N皇后解算20.gif
而当棋盘达到40X40的时候那可是相当滴绝望...
N皇后解算40.gif

目前还有很多更好的算法来解决N皇后问题,但我们还是以学习AF框架为主,就不去深研算法问题啦。欢迎大家源代码,多多指点。^-^

回帖(13)

efans_776edd

2020-6-2 09:32:55
支持 支持 支持
举报

李广

2020-6-8 10:38:52
看看,学习一下
举报

Haley

2020-6-10 14:39:08
回帖是对作者的基本尊重
举报

ximu

2020-7-3 16:38:50
学习!!!!!!!!!!!!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分