关于拿球的问题

news/2024/11/24 12:59:42/

桌上排列着100个球,两个人轮流拿球装入口袋,能拿到第100个球的人为胜利者,条件是:拿球者每次至少要拿1个但最多不能超过五个,

问:如果你是先拿球的人,以后不管怎么都能保证你能得到第100个球,你个先拿几个?然后怎么拿?为什么?

解题思路:

 1、我们不妨逆向推理,如果只剩6个乒乓球,让对方先拿球,你一定能拿到第6个乒乓球。理由是:如果他拿1个,你拿5个;如果他拿 2个,你拿4个;如果他拿3个,你拿3个;如果他拿4个,你拿2个;如果他拿5个,你拿1个。

2、我们再把100个乒乓球从后向前按组分开,6个乒乓球一组。100不能被6整除,这样就分成17组;第1组4个,后16组每组6个。

3、这样先把第1组4个拿完,后16组每组都让对方先拿球,自己拿完剩下的。这样你就能拿到第16组的最后一个,即第100个乒乓球。 

参考答案: 先拿4个,他拿n个,你拿6-n,依此类推,保证你能得到第100个乒乓球。 

试题扩展: 

1、假设排列着100个乒乓球,由两个人轮流拿球装入口袋,能拿到第100个乒乓球的人为胜利者。条件是:每次拿球者至少要拿2个,但最多不能超过7个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第100个乒乓球?

(先拿1个,他拿n个,你拿9-n,依此类推)

2、假设排列着X个乒乓球,由两个人轮流拿球装入口袋,能拿到第X个乒乓球的人为胜利者。条件是:每次拿球者至少要拿Y个,但最多不能超过Z个,问:如果你是最先拿球的人,你该拿几个?以后怎么拿就能保证你能得到第X个乒乓球?

(先拿X/(Y+Z)的余数个,他拿n个,你拿(Y+Z)-n,依此类推。当然必须保证X/(Y+Z) 的余数不等于0)


A,B从一堆玻璃球(共100个)里向外拿球,规则如下: 
(1)A先拿,然后一人一次交替着拿;
(2)每次只能拿1个或2个或4个; 
(3)谁拿最后一个球,谁就是最后的失败者; 
问A,B谁将是失败者?写出你的判断步骤。

A拿1个,B拿2个,

A拿2个,B拿4个,

A拿4个,B拿2个,

若 B拿球的数目m,前一次A拿球数n,m+n=3或者6

100 = 31*3 + 1;100=16*6+4;

100-(3X+6Y)余数为1       //X为A,B拿球一回合总数为3的次数

                                     //Y为A,B拿球一回合总数为6的次数

最后只剩一个球了,此时,该A拿,所以A必输;


最后一回合:

最后一个要么1个球,要么4个球,此时,A先拿。

A要么拿1或4个,立刻失败;要么A拿2个,B则拿1个,还是A失败;

所有:先拿的必败。


http://www.ppmy.cn/news/649247.html

相关文章

小球自由落体后反弹,计算路线和反弹高度。

题目描述 一弹跳小球从120米高度自由落下,每次落地后反跳回原高度的一半;计算n次落地经过的路线总长度和下次反弹的高度。 输入描述 输入第几次落下 输出描述 输出经过的路线总长度和下次反弹的高度。 (中文冒号,数据保留两位…

习题4-8 高空坠球 (20分) 皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?

输入格式: 输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。 输出格式: 在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果…

Area Ball(围球)

自己中学在家里自娱自乐的一款球类游戏,只因为心血来潮想把它转化为源代码,存在于世,故花了点时间写了它。框架基于Box2dWeb和lufylegend,并附有游戏规则说明文件Rull.docx。因为对js不是很熟练,使用的是过程式开发。目…

高空坠球

习题4-8 高空坠球 (20分) 皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第nn次落地时,在空中一共经过多少距离?第nn次反弹的高度是多少&#xf…

称球问题解析(1)- 12球

作者: Phill King 邮箱: phillking1982163.com 原创文章,转载请注明出处。 有12个外表一模一样的小球,除了有一个小球略轻或略重,其他的小球质量都是一样的。要求用没砝码的天秤只称3次,找出唯一的异常球,并且知道它…

小球落地。C

/已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。 编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后, 第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。 【输入形式】 从键盘输…

生成球面上点的方法

1.生成完全随机的方向&#xff0c;先获取随机数&#xff0c;生成球面坐标对应的两个角度 //生成完全随机的且不重复的方向 vector<glm::vec3> Operate::genRandDir(int number) {vector<glm::vec3> dirs;//间隔float thetaInterval PI / number;float fiInterval…

球的反弹高度有多高?

day11 题目描述: 一球从100米高度自由落下&#xff0c;每次落地后反弹回原高度的一半&#xff0c;再落下。求它在第十次落地时&#xff0c;共经过多少米&#xff1f;第十次反弹多高&#xff1f; 解析: 设初始总高度为100米&#xff0c;球每次下落高度反弹回的高度为上一次的一…