QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 7235|回复: 30
打印 上一主题 下一主题

[讨论]08"数学中国杯"赛D题的两种思路——基于Matlab编程的解决方案

[复制链接]
字体大小: 正常 放大
liwenhui        

70

主题

65

听众

5199

积分

独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    跳转到指定楼层
    1#
    发表于 2008-4-14 13:13 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定

    讨论d题第一小问:在7X7坐标纸上的对战游戏。(对于9X9可以自行推广)

    在附件里是我写的两个程序(M文件),用以讨论解决本次建模赛的D题。

    第一个程序(文件名含X那个)的出发点是:飞机的机头只会出现在(从左往右数,下同)第三列到第五列之间和(从下往上数,下同)第四行到第七行之间这个3X4的矩形区域。所以,我们采取从(4,4)开始进攻的方式,然后根据返回的不同信息,再确定下一次的进攻坐标。

    第二个程序(文件名含y那个)的出发点是:先进攻最下面一行的中央位置,如果击中飞机(当然,绝不会是机头),则可以根据飞机的长度(4格)判断飞机机头的位置在第四行。如果没击中,则进攻第二行,余者类推。

    在程序中,我们可以用一个7阶方阵来代替坐标纸,飞机机身用1表示,机头用2表示,其余的为0.那么,飞机共有的12种位置分布便对应于程序中前88行的12个7阶矩阵。

    然后让电脑按照上面提到的算法,依次检验各个位置的元素的值的情况,直到检测到值为2(即:击中机头)

    有兴趣的读者可以根据我的程序用matlab的gui编制一个人机对战游戏界面。而且还可以在两台电脑中放置不同的程序让两台电脑对战,以比较那个程序更优越。当然,我的程序并不保证是最优的,它们只是两种解决方案。

    另外,如果能引进博弈论的原理,可能能够得出进一步的程序。甚至能触到比较前沿的“人工智能”!

    鉴于笔者的能力,程序可能不是很完善,希望大家提出,再改正之。贻笑大方之家!

    说明:matlab版本应该为matlab7.0以上.


    [此贴子已经被作者于2008-4-14 13:24:47编辑过]

    两个游戏仿真模拟程序.rar.rar

    2.02 KB, 下载次数: 103, 下载积分: 体力 -2 点

    两个游戏仿真模拟程序.rar

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    四十岁后,不滞于物,草木竹石均可为剑。
    sdsfly        

    4

    主题

    3

    听众

    14

    积分

    升级  9.47%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    回复

    使用道具 举报

    wyf100        

    1

    主题

    3

    听众

    32

    积分

    升级  28.42%

    该用户从未签到

    新人进步奖

    这种算法扩展性好吗?!!

    还有人是活的,机器那么一个套路打下去游戏的意义和在?对于扩展后的算法我觉得应该加入随机选择。

    请多指教,谢谢。

    [em06]
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    你的想法完全正确。

    机器是死的,人是活的。只要人知道了机器的算法后就会选取机器最难击中(或说需要进攻次数最多的)的位置为机头。

    我昨天在写这些程序的时候,想到了这个问题的解决方案:编写自上而下的进攻程序、编写自下而上的进攻程序、编写自中间向上向下的进攻程序。然后在程序88行左右的地方添加一段代码,用以产生一个随机数,并对应一种算法。然后用一个选择语句选择以上四种算法的其中一种。这样做的目的就是使得进攻的方案随机化,使得人就算知道机器的所有算法但也搞不清它用的那一种。呵呵,其实这就是我在上文中说的引入了博弈论的思想。

    我给出的两个程序都是自下而上的,另外还有一个z程序(我给出的是x和y)是自上而下的,因为某些原因没有放上来。

    权当是抛砖引玉!

    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    tonysonic        

    0

    主题

    0

    听众

    1

    积分

    升级  20%

    该用户从未签到

    楼主你确实理解的不对,人家题目没说飞机只能向上,飞机头明显不只是在那个区域
    回复

    使用道具 举报

    wyf100        

    1

    主题

    3

    听众

    32

    积分

    升级  28.42%

    该用户从未签到

    新人进步奖

    谢谢楼主的解答,不过我还是觉得对于一架飞机这种方法容易实现,如果飞机数目增多,肯定不能很快获胜的。是否应该考虑在不是一架飞机的情况下的情况呢。[em37]
    回复

    使用道具 举报

    roumots        

    0

    主题

    0

    听众

    3

    积分

    升级  60%

    该用户从未签到

    你这个程序最多几次可以成功找到机头?

    我的法子最多5-6次?我正好没有时间,没有交论文,不知道有没有机会了!

    [此贴子已经被作者于2008-4-14 22:46:30编辑过]
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    哦,既然这样说,那我就把我的理解谈谈吧。可能理解有误望指正!

    我的理解是这样的:如题

    有一种在学生中间比较流行的双方对战游戏。在游戏前双方各准备一张坐标纸,在上面分别制作7?的方格,如图1所示。在自己的方格中画一架飞机,飞机呈字形,其中上面的一长横占5个格子,下面的短横占3个格子,一竖占4个格子,最上面突出的一个格子代表机头。所画飞机的位置以及机头的指向由游戏者自己决定,游戏结束前双方不能互看对方的坐标纸。游戏时双方交替用炮弹打击对方,攻击的一方报告炮弹打击的位置,被攻击的一方报告是否命中飞机。例如:被攻击方的飞机画法如图1所示,攻击者报告“炮弹”的打击位置是(43),从图中可知,“炮弹”恰好落在飞机所在的红色格子上面,被攻击方报告飞机被击中,接下来刚才的被攻击方变成攻击方进行上面的攻击步骤,双方交替攻击对方,如果某一方被命中机头,游戏结束,被命中机头的一方失败。游戏双方都在通过打击后对方的反馈信息来猜测对方飞机的位置。

    游戏比赛采用1910胜制。

    请注意里面红色的文字。我的理解是:既然说是“飞机呈‘士’字形”,那么就应该是机头朝上,否则就应该说是“飞机呈‘干’字形”。还有,后面的文字又说“上面的一长横占5个格子,下面的短横占3个格子”,也表明是机头朝上,因为坐过或者见过飞机的人都知道一个事实——飞机前翼比后翼长。

    [此贴子已经被作者于2008-4-14 23:14:35编辑过]
    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-6-17 16:45 , Processed in 0.863110 second(s), 105 queries .

    回顶部