加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – “Flip all”(Light Out)游戏的任何算法?

发布时间:2020-12-15 00:56:06 所属栏目:Java 来源:网络整理
导读:在这个游戏中: http://www.mathsisfun.com/games/allout.html 无论您如何“滥用”原始板,解决功能都可以解决任何情况.请告诉我解决这个游戏的算法.我试着思考了几天,但仍然没有找到解决所有案例的线索. 好的,在阅读了一些答案和评论后(并快速浏览一下Light
在这个游戏中: http://www.mathsisfun.com/games/allout.html
无论您如何“滥用”原始板,解决功能都可以解决任何情况.请告诉我解决这个游戏的算法.我试着思考了几天,但仍然没有找到解决所有案例的线索.

好的,在阅读了一些答案和评论后(并快速浏览一下Light out游戏),我扩展了我的问题:

如果我扩大网格的大小(比如25×25),游戏会有所不同吗?在可接受的时间内(< 2s),还有任何可能的算法来解决任何情况?

解决方法

这个游戏通常被称为Lights Out,并且有许多优雅的解决方案,所有解决方案都基于一些标准但有些高级的数学.我不会在这里描述它们,但如果你有点谷歌,你可以找到各种解释,从简单的程序到转换为线性代数或群论.一些链接:

http://www.hamusutaa.com/pilot/solution.html

http://www.ripon.edu/academics/macs/summation/2010/articles/M.%20Madsen%20-%20Lights%20Out.pdf

http://people.math.sfu.ca/~jtmulhol/math302/notes/24-Lights-Out.pdf

编辑:回复:你的第二个问题.我发布的第二个链接中提供的算法可以在O(n ^ 6)时间内解决n x n板,这意味着您应该能够快速求解25 x 25板.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读