社区
数据结构与算法
帖子详情
国际象棋,马 极小满覆盖。。。。求解
foreverwht
2009-05-07 01:48:19
最近碰到一个题目,与马的遍历类似。。但不太懂 有能吧程序主体做出来给我看的吗。。谢谢。。。。。题目如下:
在8*8国际象棋棋盘上。。。如果放置若干个马后,使得整个棋盘的任意控位置上所放置的棋子都能被马吃掉,就称这组放置为一个满覆盖,若去掉满覆盖的任意一个棋子都会使他不再是满覆盖,就称为一组极小慢覆盖;程序要求如下:
1 求解一个极小满覆盖
2程序能方便移植到其他规格棋盘上、
...全文
632
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的方阵。
马
在
国际象棋
中的走法如右图...
证明之缺角正方形网格的铺地砖问题
通过类比
国际象棋
的棋盘,我们可以利用颜色交错的方格来证明无法
覆盖
剩余的小方格。这个问题的解析展示了数学证明的美妙之处,其中包括意外的思想、引人入胜的推理和待探索的暗示。这种美妙的证明过程使我们对数学的...
[ 图 论 ]二分图判定及其匹配、最小点
覆盖
,最大独立集,(基础+提高)
他们之间的关系自然也
极
不和谐。 很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。 我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。 ...
浅谈最大子矩阵
最大子矩阵问题是一类
求解
某个矩阵中最大符合条件的子矩阵的问题,一般的条件有子矩阵不能
覆盖
障碍点、子矩阵的形状等。 【
极
大化思想】 这里首先解释几个概念: 有效子矩阵:满足题目要求的子矩阵。
极
大子矩阵:...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章