MIN(1)一排石头的游戏

2024-03-16 06:08
文章标签 游戏 石头 min 一排

本文主要是介绍MIN(1)一排石头的游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 原题

1.1 题目

      N块石头排成一行,每块石头有各自固定的位置。两个玩家依次取石头,每个玩家每次可以取其中任意一块石头,或者相邻的两块石头,

石头在游戏过程中不能移位(即编号不会改变),最后能将剩下的石头一次取光的玩家获胜。这个游戏有必胜策略吗?

1.2 解答

      已知:石头数量为N,假设两个玩家分别为玩家A和玩家B,且玩家A先取石头。

      当N<=2时,玩家A可以直接取完所有的石头,玩家A有必胜策略。

      当N=3时,玩家A先取中间的1个石头,剩下的两个石头,玩家B只能取其中的1个,最后1个由玩家A取得,玩家A有必胜策略。

      当N=4时,玩家A先取中间的2个石头,这会又剩下2个石头,玩家B还是只能取其中1个,最后一个由玩家A取得,玩家A有必胜策略。

      当N>4,且N为奇数时,玩家A取中间的1个石头,剩下的左边石头情况和右边石头情况一样,那么无论玩家B如何取石头,玩家A只要

在相反的方向取相同数量的石头即可,如此下去,最后必然玩家A取得最后的石头,A有必胜策略。

      根据上面的归纳,先手的玩家只有把中间的石头拿走,如果N是奇数,就拿走中间的1个石头,如果N是偶数,就拿走中间的2个石头,

这样留给玩家B一个对称的局面,接着,无论玩家B怎么拿石头,玩家A都保证对称局面不变,这样,最后肯定是A取得最后的石头。   

2. 扩展1

2.1 题目

      若规定最后取光石头的人输,又该如何应对?

2.2 解答

      N=1时,A必须取得这唯一的也是最后的一个石头,A必然输掉,这是必然结果,无需策略。

      N=2时,A取一个石头,那么B必然取得剩下的一个石头,A有必胜策略。

      N=3时,A取两个石头,那么B必然取得剩下的一个石头,A有必胜策略。

      N=4时,若A取两个石头,那么B取一个石头,A只能取最后剩下的一个石头。

                   若A取一个石头,那么B取两个石头,A只能取最后剩下的一个石头。

                   因此,无论A怎么取,B都有必胜策略。

      N=5时,A只需取边上的一个石头,这样就转化为N=4,B先取了,这样根据上面的分析,可知N=4时,后取的有必胜策略,

                   因此,A有必胜策略。

      N=6时,A只需取边上的两个石头,这样就转化为N=4,B先取了,这样根据上面的分析,可知N=4时,后取的有必胜策略,

                   因此,A有必胜策略。

      分析到这里,貌似是:N%3=1时,B有必胜策略,N%3=2和N%3=0时,A有必胜策略。但是证明方法一直没有想清楚,

网上一篇“NIM(1) 一排石头的游戏”的文章进行了证明,不过证明的核心地方一笔带过,相当于没有证明。

      感觉这个扩展中比较麻烦的地方在于“一排石子”,而且N很大的情况下,如果一步一步A和B分别取石子后,最后得到的石子之间

可能不是连续的,这样结果就不确定了。比如:最后还有3个连续的石子,A先取,A有必胜策略;最后还有3个都不连续的石子,A先取,A肯定失败。所以呢,最后剩余的石头状态很重要,现在我只是分析到这里,也没看到网上谁很好的解决了这个问题。

3. 扩展2

3.1 题目

    若两个人轮流取一堆石头,每人每次最少取1块石头,最多取K块石头,最后取光石头的人赢得此游戏。

3.2 解答

1)极端情况:K>=N

   玩家A可以直接取掉所有石头,获得胜利。

2) 一般情况:K<N

   这里面有个规律,就是,无论一个玩家拿了多少个石头,另一个玩家都能够选择相应的石头数量,使得两个玩家一起拿K+1个石头。

   从上面这个思路,我们考虑N与K+1之间的数值关系:

   N = (K+1) * c + d,其中c>=1,d>=0

   当d!=0时,玩家A先取d-1个石头,这样还剩(K+1)*c+1个石头。然后轮到玩家B取石头,不管玩家B取了多少个石头,玩家A都再取相应

的石头,使得玩家A和玩家B一起取(K+1)个石头,这样,还剩(K+1)*(c-1)+1个石头,如此往复,最后,肯定会剩下1个石头等着A来取。

  举例说明:

  剩余石头数目         取石头

  (K+1) * c + d          A取d-1个

  (K+1) * c + 1          B取X个,A取(K+1-X)个

  (K+1) * (c-1) + 1    ...

   ...                         ...

   1                          A取得最后一个石头

   0

   当d=0时,无论A取多少个石头,B取相应的石头,使得A和B一起取(K+1)个石头,这样最后取到石头的肯定是玩家B。

  举例说明:

  剩余石头数目        取石头

  (K+1) * c               A取X个,B取(K+1-X)个

  (K+1) * (c-1)         ...

   ...                         ...

   K+1                      A取X个,B取(K+1-X)个

   0

   即N%(K+1)=0时,玩家B有必胜策略,N%(K+1)!=0时,玩家A有必胜策略。

   可以看出来,如果K很大的话,而N的数值是随机的话,先手的优势是很明显的。



这篇关于MIN(1)一排石头的游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814537

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI

第四次北漂----挣个独立游戏的素材钱

第四次北漂,在智联招聘上,有个小公司主动和我联系。面试了下,决定入职了,osg/osgearth的。月薪两万一。 大跌眼镜的是,我入职后,第一天的工作内容就是接手他的工作,三天后他就离职了。 我之所以考虑入职,是因为 1,该公司有恒歌科技的freex平台源码,可以学学,对以前不懂的解解惑。 2,挣点素材钱,看看张亮002的视频,他用了6000多,在虚幻商城买的吸血鬼游戏相关的素材,可以玩两年。我

nyoj 1038 纸牌游戏

poj 的一道改编题,说是翻译题更恰当,因为只是小幅度改动。 一道模拟题,代码掌控能力比较好,思维逻辑清晰的话就能AC。 代码如下: #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct node{char c[5];int rk;char da[5];int nu

如果出一个名叫白神话悟空的游戏

最近黑神话由于与原著不符引起了原著派的争议。 所以我在摸鱼的时候想到如果游科或者某个别的公司“痛改前非”不夹带私货完全复刻吴承恩百回版剧情制作一个“重走西游路”的游戏,会有一个什么样的销量?(设定为原著派已经多方渠道认证,此游戏的确没有夹带私货,绝大部分复刻了原著剧情) 游戏玩法我想了几类 超长线性有岔路蜈蚣形状地图,蜈蚣的腿部是探索区域和支线,重走西游路线,开篇就是开始取经前唐玄宗御弟cg

《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂》可以在苹果Mac电脑上玩吗?

在宏大的世界观游戏中,《黑暗之魂2:原罪学者》脱颖而出,以其探索性和挑战性征服了全球玩家的心灵。下面我们来看看《黑暗之魂2:原罪学者》是什么类型的游戏,《黑暗之魂2:原罪学者》可以在苹果电脑玩吗的相关内容。 一、《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂2:原罪学者》作为《黑暗之魂2》的增强版和重制版,是一款FromSoftware制作、BANDAI NAMCO和FromSoft

简单取石子游戏~博弈

很坑爹的小游戏,至于怎么坑爹,嘎嘎~自己研究去吧~! #include<stdio.h>#include<windows.h>#include<iostream>#include<string.h>#include<time.h>using namespace std;void Loc(int x,int y);/*定位光标*/void Welcome(); /*创建欢迎界面*/