首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
小明应该如何安排策略才能必定获得胜利?
[单选题]
现有两堆硬币,小明和小亮玩游戏,每次每人只能从其中一堆中取走1个或2个硬币,最后将硬币取完者算作胜利,当两堆硬币的个数分别是12、13时,小明应该如何安排策略才能必定获得胜利?
安排小亮先取硬币
小明或小亮均一定必胜
安排自己先取硬币
不可能必胜
添加笔记
邀请回答
收藏(649)
分享
23个回答
添加回答
72
推荐
SunburstRun
答案是C
通过题目我们可以知道,最后如果只剩3个,无论
小亮如何取,小明都会胜利地取到最后一个,我先看其中一个堆的话:如果是剩最后6个,那么小明一定可以维持下一步只剩最后3个,
如果是剩最后9个,那么小明一定可以维持下一步只剩最后6个,
如果是剩最后12个,
那么小明一定可以维持下一步只剩最后9个
那么,答案就出来了,小明先在13的堆里那一个,那么两个堆都是12,接下来,小亮拿任何一堆,小明跟着拿那一堆,并保持为3的倍数,那么小明一定会赢,比如假设A,B堆, 小亮在A堆拿2,那么小下一步就在A堆拿1,
小亮在B堆拿1,那么小明下一步就在B堆拿2
所以小明先在13的堆里那一个,然后用这种手法可以保证必胜
编辑于 2015-12-02 18:08:37
回复(3)
75
Aki_Willow
小明先在13的堆中取一个,之后不管小亮在哪个堆中取多少个,小明都在另一个堆中取相同多个,比如小亮在第一堆取2个,小明就在第二堆取2个,这样两堆一直一样多,最后一个必定被小明取到。
发表于 2015-12-05 00:52:49
回复(4)
30
indere
硬币数为12的堆,取完所需的次数至少是6,最多为12,所有可能为{6,8,10,12}。硬币数为13的堆,取完所需的次数至少是7,最多为13,所有可能为{7,9,11,13}。将两个堆都取完所需的次数 偶数+奇数=奇数。 所以先手能够胜利。
发表于 2016-06-05 09:26:41
回复(2)
9
youyousu
两堆硬币数相差偶数时,后取者胜;
两队硬币相差奇数时,先取者胜。
发表于 2016-03-04 20:46:52
回复(1)
6
凌寒香如故
比赛规则是最后一个拿的人赢。
总结一个规律。
用总数除以一次能拿取的最大数
结果有4种:
整除商是奇数,先取的赢
;商事偶数+余数,先取的赢
整除商是偶数,后取得赢
;商是奇数+余数,后取的赢
发表于 2016-06-16 21:13:16
回复(1)
5
好学上进
可以将12、13简化为2、3,道理是一样的,一下就看明白了。
发表于 2015-12-04 22:04:55
回复(1)
3
牛客857470号
自己先从13的那堆取走一个,则两堆数量相同,之后无论小亮从那堆取硬币,自己都从另一堆取相同数量的,肯定会赢。(此类题的解法:只要能取的最大硬币数大于两堆数目之差,先取的从多的一堆取,使两堆相等,那么一定会赢)
发表于 2016-04-28 10:33:07
回复(1)
2
小白白啦
解题技巧:https://blog.csdn.net/weixin_44268113/article/details/104227622
发表于 2020-02-09 12:18:56
回复(0)
1
牛客744978890号
小明现在13的那一堆选一个,剩下的12+12是3的倍数,小明可以采取的策略也可以是,对手取2个,他就娶一个,对手取1个,他就取两个,这样也一定是他最后一个拿
发表于 2021-09-25 17:13:38
回复(0)
1
abn
总结发言:
第一个人取完后如果能保证差值为3的倍数(差值为0也视为3的倍数),就必胜。如果一开始差值就是3的倍数,则后取者必胜。
定理1:如果你取完后保证差值为3的倍数,那么你总有办法让两堆相等,0个0是相等的,所以最终保证两堆都没有的必然是你。
证明:在保证差值为3的倍数后,每次都保证相差是3的倍数,咬准这一个原则,比如他在A堆取一个,那么你可以在B堆取一个,也可以在A堆取两个。直到一堆取完(即一堆为0),那么就成单堆的问题,保证你取完后这一堆始终为3的倍数(其实依然符合差值为3的倍数)。
最后总结规律:
第一个你取,第一把如果能让差值是3的倍数(差值为0也是3的倍数),就必胜,不能就洗洗睡吧,即开始就是差值为3的倍数则第一个取的必输,否则必赢。
编辑于 2016-08-01 10:26:30
回复(1)
0
小鲸鱼在发呆z
硬币总数/每次两人最多拿的数量,整除奇先偶后,有余数相反。
发表于 2023-08-09 17:01:33
回复(0)
0
youllyyoully
当A取完后,全场就剩下3枚硬币时,(这时无论B怎么取),都是A必胜。 继续迭代,当哪一方取完后剩下3的倍数个硬币,哪一方就胜了。 所以,当两堆硬币是12和13时,A先取13个中的1个。然后以后每次取的个数与B取的个数凑成3个即可,在哪一堆取都可以。当两堆硬币是13和14时,A先取14中的1个,然后在另一堆上复制B的取法即可。13和15同理。当是13和16时,让B先取,然后A每次取的数能与B凑成3个即可。
发表于 2022-11-09 21:48:11
回复(0)
0
牛客89368621号
这不是名侦探学院的游戏嘛😂
发表于 2022-09-01 11:35:32
回复(0)
0
安静的回笼觉觉主胖乎乎
保证两边石子都是3的倍数,然后对面先取,自己就能赢
发表于 2022-02-22 18:59:21
回复(0)
0
寒炎
逆推法,硬币一枚或两枚,一次取完游戏结束,三枚先取者取不完后取者取完,4或5枚,先取者可以让硬币数量变成3让另外一个人陷入3枚中取钱的被动局面,6枚同3枚一样先取属于被动局面,如此3n枚硬币先手必输,非3n枚先手另硬币变成3n则必胜
题中12枚2那一堆是先取必输,13那一堆,先手取一个则必胜
发表于 2019-11-18 15:27:02
回复(0)
0
Sanming
看成分别取12.13两个堆了> =<
发表于 2018-07-19 17:40:19
回复(0)
0
真的不秃
只要记住必胜的条件是当小明拿完后,无论小亮取1还是2,剩下的小明都可以一次取完
发表于 2017-05-25 14:15:32
回复(0)
0
NowCoderXiong
我的想法是: 小明取完只要剩3的倍数个,一定是小明赢,因为小亮无论取1还是2小明都可以取完。
因为: 小亮无论取x(1个或者2个)时候小明取(3-x)个继续保持剩下的是3的倍数就可以。
发表于 2017-04-11 10:39:56
回复(0)
0
笑笑玉(-)didi--!
3的倍数,推导
发表于 2017-03-17 22:57:52
回复(0)
0
mrpERP
只要两堆硬币数不全为奇数,小明都会获胜。
发表于 2016-06-08 15:40:32
回复(0)
0
奔跑的乌龟
小明先选13个中的一个,然后让小亮选,小亮选几个,他就选几个,这样最后肯定就是他赢
发表于 2016-04-13 09:24:37
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
数学运算
来自:
搜狗2016 C++工...
难度:
23条回答
649收藏
11054浏览
热门推荐
相关试题
87的100次幂除以7的余数是多少?
数学运算
评论
(35)
来自
搜狐2013校招研发工程...
赛马,至少需要几轮比赛才能得出前三...
产品
运营
数学运算
评论
(8)
34的17次方 对6取余, 结果是多少?
数学运算
评论
(43)
来自
人人网2015研发笔试卷E
假设MySQL数据库
数据库
C++工程师
运维工程师
前端工程师
算法工程师
PHP工程师
搜狗
评论
(61)
来自
搜狗2016 C++工程...
下面关于TCP的描述,错误的是()
网络基础
C++工程师
运维工程师
前端工程师
算法工程师
PHP工程师
搜狗
计算机网络
测试
后端开发
客户端开发
前端开发
数据
运维/技术支持
评论
(7)
来自
搜狗2016 C++工程...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题