社区
数据结构与算法
帖子详情
国际象棋,马 极小满覆盖。。。。求解
foreverwht
2009-05-07 01:48:19
最近碰到一个题目,与马的遍历类似。。但不太懂 有能吧程序主体做出来给我看的吗。。谢谢。。。。。题目如下:
在8*8国际象棋棋盘上。。。如果放置若干个马后,使得整个棋盘的任意控位置上所放置的棋子都能被马吃掉,就称这组放置为一个满覆盖,若去掉满覆盖的任意一个棋子都会使他不再是满覆盖,就称为一组极小慢覆盖;程序要求如下:
1 求解一个极小满覆盖
2程序能方便移植到其他规格棋盘上、
...全文
633
13
打赏
收藏
国际象棋,马 极小满覆盖。。。。求解
最近碰到一个题目,与马的遍历类似。。但不太懂 有能吧程序主体做出来给我看的吗。。谢谢。。。。。题目如下: 在8*8国际象棋棋盘上。。。如果放置若干个马后,使得整个棋盘的任意控位置上所放置的棋子都能被马吃掉,就称这组放置为一个满覆盖,若去掉满覆盖的任意一个棋子都会使他不再是满覆盖,就称为一组极小慢覆盖;程序要求如下: 1 求解一个极小满覆盖 2程序能方便移植到其他规格棋盘上、
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
foreverwht
2009-05-10
打赏
举报
回复
最近几天学校网络问题没上,自己也在调试程序 感觉和8楼思路有点像,但可能个人编程能力有限,所以有了思路后程序编的还是有一堆问题,还是感谢大家哈~偶是新手。。。分不多。。见谅。。。。
PS:如果能有人给我一个大概的函数主体就好了。。。- -!
volant_hoo
2009-05-09
打赏
举报
回复
感觉楼主说的应该是马一步能吃掉,而不是多步才能吃掉
多步很简单,大于3*4的放一个马就能吃完了,没有意义
中国象棋和国际象棋中马差不多,就是多了个别马腿,还有就是棋盘大小有些差别
呵呵,考虑别马腿的话这题难很多,如果考虑使用最少的马覆盖,也有一定的难度
绿色夹克衫
2009-05-08
打赏
举报
回复
这样随便选点恐怕得不到最优解,可以转化为拼图问题,先从4个角上的点开始求解
[Quote=引用 3 楼 joanlynnlove 的回复:]
给定了棋盘之后。
先随便放一只马,对棋盘进行宽搜遍历,能到达的点都不用放马了。
在剩下不能到达的点中任选一个点放下一个马,同样宽搜遍历。
这样一直进行下去,直到棋盘点全部能到达。
所需要的马数就是最小的马数了。
[/Quote]
acdbxzyw
2009-05-08
打赏
举报
回复
我还以为走法是一样的呢。
丢人丢大了。
acdbxzyw
2009-05-08
打赏
举报
回复
[Quote=引用 8 楼 litaoye 的回复:]
宽搜的结果并不能保证任何两只马必然不会踩到同一点上,
实际上最优解中也会存在2匹马踩到同一点的可能,一个马可以控制的点最多有8个。
引用 7 楼 joanlynnlove 的回复:
引用 6 楼 litaoye 的回复:
这样随便选点恐怕得不到最优解,可以转化为拼图问题,先从4个角上的点开始求解
我认为必然得到最优解。
宽搜保证任何两只马必然不会踩到同一点上,否则一只马就能办到两只马的事了。
也就是说每只马都只能踩到自己…
[/Quote]
这样。。。
我不会下国际象棋,我是按中国象棋的想法做的。
不要理我。
volant_hoo
2009-05-08
打赏
举报
回复
如果只求一个解很好办:先全部放马,然后从一个马(可以指定一个,也可以随机)开始,把所有能直接吃掉的干掉;然后对下一个没被吃掉马做上操作,直到所有的马都遍历或者被吃掉。
呵呵,不是最优解,最优解等楼下的。
绿色夹克衫
2009-05-08
打赏
举报
回复
宽搜的结果并不能保证任何两只马必然不会踩到同一点上,
实际上最优解中也会存在2匹马踩到同一点的可能,一个马可以控制的点最多有8个。
[Quote=引用 7 楼 joanlynnlove 的回复:]
引用 6 楼 litaoye 的回复:
这样随便选点恐怕得不到最优解,可以转化为拼图问题,先从4个角上的点开始求解
我认为必然得到最优解。
宽搜保证任何两只马必然不会踩到同一点上,否则一只马就能办到两只马的事了。
也就是说每只马都只能踩到自己的一部分点,拼起来才会是整个棋盘。
[/Quote]
acdbxzyw
2009-05-08
打赏
举报
回复
[Quote=引用 6 楼 litaoye 的回复:]
这样随便选点恐怕得不到最优解,可以转化为拼图问题,先从4个角上的点开始求解
[/Quote]
我认为必然得到最优解。
宽搜保证任何两只马必然不会踩到同一点上,否则一只马就能办到两只马的事了。
也就是说每只马都只能踩到自己的一部分点,拼起来才会是整个棋盘。
fengcman
2009-05-07
打赏
举报
回复
这个问题可以转化为从一个点出发,以一种方式去走,比如马的走法上两步,右一步。经过多次后看是否能回到原点,再统计能回到原点的走过的次数
Linux校园社区
2009-05-07
打赏
举报
回复
[Quote=引用 3 楼 joanlynnlove 的回复:]
给定了棋盘之后。
先随便放一只马,对棋盘进行宽搜遍历,能到达的点都不用放马了。
在剩下不能到达的点中任选一个点放下一个马,同样宽搜遍历。
这样一直进行下去,直到棋盘点全部能到达。
所需要的马数就是最小的马数了。
[/Quote]学习
acdbxzyw
2009-05-07
打赏
举报
回复
给定了棋盘之后。
先随便放一只马,对棋盘进行宽搜遍历,能到达的点都不用放马了。
在剩下不能到达的点中任选一个点放下一个马,同样宽搜遍历。
这样一直进行下去,直到棋盘点全部能到达。
所需要的马数就是最小的马数了。
topplayers
2009-05-07
打赏
举报
回复
[Quote=引用 1 楼 Paradin 的回复:]
没懂意思
觉得一只马就够了
[/Quote]
正方形的棋盘或许可以,如果是其他矩形就不一定了,比如2*3的棋盘,一只马只能吃两个点
Paradin
2009-05-07
打赏
举报
回复
没懂意思
觉得一只马就够了
C#
马
的
极
小满
覆盖
用C#写的
马
的
极
小满
覆盖
问题: 在8×8的
国际象棋
棋盘上,如果在放置若干个
马
以后,使得整个棋盘的任意空位置上所放置的棋子均能被这些
马
吃掉,则称这组放置为棋盘的一个满
覆盖
。若去掉满
覆盖
中的任意一个棋子都会使这组放置不再是满
覆盖
,则称这一满
覆盖
为
极
小满
覆盖
。
求解
一个
极
小满
覆盖
,按照矩阵形式给出,用特殊符号表示
马
。
马
踏棋盘问题
将
马
放到
国际象棋
的8*8棋盘上的任意指定方格中,按照“
马
”的走棋规则将“
马
”进行移动,要求每个方格进入且只进入一次,走遍棋盘上的64个方格,将数字1,2,3…,64依次填入一个8*8的方阵。
马
在
国际象棋
中的走法如右图所示。 涉及的计算思维 解决这个问题可以利用到计算机中的两种方法,一种是深度优先搜索,也就是回溯法,体现了计算思维的递归思想。另一种是利用贪心法进行再优化,总是选择最优者...
证明之缺角正方形网格的铺地砖问题
缺角正方形网格的铺地砖问题是一个著名的数学难题。无论是八横八纵的方格还是用其他尺寸的方格,都无法用多米诺骨牌形状的地砖完全
覆盖
剩余部分。通过类比
国际象棋
的棋盘,我们可以利用颜色交错的方格来证明无法
覆盖
剩余的小方格。这个问题的解析展示了数学证明的美妙之处,其中包括意外的思想、引人入胜的推理和待探索的暗示。这种美妙的证明过程使我们对数学的思维方式和探索过程产生了更深入的理解。无论是数学、音乐、绘画还是诗歌,每种形式都有其独特的美,而数学证明中的美妙之处也展现了数学的独特之美。
[ 图 论 ]二分图判定及其匹配、最小点
覆盖
,最大独立集,(基础+提高)
二分图,又称二部图,英文名叫Bipartitegraph。二分图是什么?节点由两个集合组成,且两个集合内部没有边的图。
浅谈最大子矩阵
浅谈最大子矩阵问题 【最大子矩阵问题】 最大子矩阵问题是一类
求解
某个矩阵中最大符合条件的子矩阵的问题,一般的条件有子矩阵不能
覆盖
障碍点、子矩阵的形状等。 【
极
大化思想】 这里首先解释几个概念: 有效子矩阵:满足题目要求的子矩阵。
极
大子矩阵:满足题目要求的、边界无法再扩张的子矩阵。 最大子矩阵:
极
大子矩阵中最大的一个。 在许多问题中,我们常常见到形如“使xx面积最大”“找到最大的矩形...
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章