翻硬币问题诀窍翻硬币问题诀窍
- 格式:doc
- 大小:21.50 KB
- 文档页数:6
作者: 杨金珏翻硬币问题诀窍翻硬币问题诀窍硬币问题是公务员考试出现的数学运算题型,属于逻辑类考题,这类问题变化复杂,对考生的推理能力要求高。
博大弘仕杨金珏老师将在这里介绍翻硬币问题的快速解题技巧。
首先要明白什么是“翻硬币问题”,通常题面形式是这样的:M个硬币全部正面朝上,现在要求每次必须同时翻转其中的N个硬币,至少翻转多少次才能使全部硬币反面朝上?那么可能出现四种情况:硬币总数(M)每次翻硬币数量(N)奇奇奇偶偶奇偶偶上面四种情况中,只有当硬币总数是奇数个并且每次翻偶数个硬币时,不能完成要求,其他三种都可以完成翻转。
为什么不能完成这种情况呢?根据奇偶的基本性质可以推导出来,每个硬币必须翻转奇数次才能实现反面朝上,现在总数是奇数,那么所有硬币翻转总数就是奇数个奇数,其结果必定是个奇数。
但是每次翻转偶数个硬币,那么硬币被翻动的总数为偶数乘以翻动次数,结果必定是偶数。
所以这种情况下是不可能完成任务的。
翻硬币问题形式多样,这里总结出了一个基本的解题步骤。
第一步:判断总个数是否与每次翻的个数呈倍数关系。
如果是倍数关系,翻动次数=M÷N第二步:如果没有倍数关系,考虑硬币总数的奇偶情况。
当总数为偶数(1)每次翻的个数是总数减一【例1】现有6个一元面值硬币正面朝上放在桌子上,你可以每次翻转5个硬币(必须要翻转5个),问你最少要经过几次翻转可以使这6个硬币全部反面朝上?A.5次B.6次C.7次D.8次【解析】本题属于归纳推理问题。
一个硬币要翻面,需要翻奇数次,一共有6个硬币,每一次翻转5个,那么必须翻转偶数次才能保证每一枚硬币翻转奇数次,故排除A、C。
因为每次翻五个,则有一个没被改变,或者说每次是在原来的基础上变一个,一共有6个硬币,每次变一个,那么需要6次才能全部变完。
具体过程如下:故需要6次,故正确答案为B。
这类问题的解答公式为:翻动次数=M翻动方法:只要按照第一次第一个不翻,第二次第二个不翻,按照此方法进行操作就可以成功。
于硬币翻转问题——作者:⊿风之〆恶魔(逆流)整理:比基尼哥哥首先,我们要知道翻硬币的四种情况:一、奇数个硬币,每次翻奇数次二、奇数个硬币,每次翻偶数次三、偶数个硬币,每次翻奇数次四、偶数个硬币,每次翻偶数次(注:只有奇数个硬币翻偶数次不能完成翻转,其他三种都可以完成翻转。
)其次,我们要先理解硬币翻转是怎么回事,这类考题都是有以下特点的:1、M个硬币同处于某一面比如说是正面朝上,然后我们设定一次必须同时翻转N个硬币这样一个条件,那我们到底要至少翻转多少次才能达到这个目的呢?2、我们知N一般都是设定是奇数的,M是偶数的,为什么?当然这并不是说N不能是偶数,因为如果N:M=A:B能够转化的话,使达到A,B都是整数的同时,B也是奇数的话也是可以的。
我们为什么要强调N是奇数类型,或者M:N可以化简到奇数的形式呢?因为M肯定是大于N的吧,M-N可以为奇数也可以为偶数。
如果是偶数的话,那好可以分解成1,1的形式(2,2等)也是可以的。
然后我们借助前面全部翻转的N个硬币其中的N-1个,就能让他们同时和1,1这两个硬币一起翻转,最终就能达到全部翻转成功的目的;如果是奇数的话,那我们可以不用减,直接把M分解出来。
至少可以分解成1,1,1,……,1一共是M个1的形式,然后同样的利用借助共同的硬币一起翻转的目的。
因为一个硬币被利用翻转两次的话就回到原来的状态。
这也是M-N正好等于1的类型,为什么是翻转M次的解释。
当然还有种特殊的,比如说86,每次翻转4个,要经过多少次才能达到目的?80/4=20还有6=3+3正好利用好,所以是22次。
也就是说偶数对偶数其实也是可以翻的。
为什么这么说呢?因为偶数可以转化成M个1,而且M是偶数,所以他们利用起来的其它数字能正好对称满足。
综上我们知道只有一种情况,那就是N是奇数,M是偶数的话翻不了,其它情况都可以。
当然方法在我们研究的过程中也已经分析解释清楚了。
M-N=1的话那就是M次其它的基本就是M/N的整数商+1或者+2或者+3的情况。
翻硬币问题翻硬币问题有好几种。
其中的一种是这样的:桌子上有q = m + n枚硬币,m正面朝上,n枚反面朝上,每一轮翻p枚,在每一轮翻币的时候,被翻的同一枚硬币只能翻一次。
问最少多少次能把所有的硬币翻成全部正面或者反面朝上?根据问题的描述,问题实际上隐含:m 、n、 p > 0,m + n > p。
这个问题往往是计算机编程的问题。
涉及广度优先还是深度优先搜索。
我对广度优先还是深度优先搜索了解的甚少。
以下是用笨办法求解的。
1)币面状态数:用 (正面朝上币数, 反面朝上币数 )表示,显然初始状态是( m, n )。
假设第一轮翻币翻反面(或者正面)的硬币数为:i1<=n,则第一轮翻币分别翻正面(或者反面)的硬币数为:p - i1 <m, 此时币面状态数为:( m – ( p - i1 ) + i1, n - i1 + ( p - i1 ) ) = ( m – p + 2 * i1 , n + p - 2 * i1) 第二轮翻币翻反面(或者正面)的硬币数为:i2< n + p - 2 * i1,则第二轮翻币分别翻正面(或者反面)的硬币数为:p – i2 < m – p + 2 * i1, 此时币面状态数为:( m – p + 2 * i1 – ( p – i2 ) + i2, n + p - 2 * i1 + p - 2 * i2)= ( m – 2 * p + 2 * ( i1 + i2 ), n + 2 * p - 2 * ( i1 + i2 ) )第三轮币面状态数:( m – 3 * p + 2 * ( i1 + i2 + i3), n + 3 * p - 2 * ( i1 + i2 + i3)) ……………………………………………………第k轮币面状态数:( m – k * p + 2 * ( i1 + i2 + … + i k), n + k * p - 2 * ( i1 + i2 + … + i k))简记:t = i1 + i2 + … + i k,则第k轮币面状态数可以标示为:( m – k * p + 2 * t, n + k * p - 2 * t)2)完成翻币条件如果在某一轮翻币后,正面币数或者反面币数能被p整除(其中之一等于零也被包含),则以后的每一轮全翻那个币面数能被p整除的那一部分就可以完成翻币,这一段话的意思就是:m – k * p + 2 * t = s * p或:n + k * p - 2 * t = s * p稍微变换一下:m – k * p + 2 * t = s * p —> ( s + k ) * p – 2 * t = m或:n + k * p - 2 * t = s * p —> ( s – k ) * p + 2 * t = n因此问题转换为求解不定方程:( s + k ) * p – 2 * t = m或者( s – k ) * p + 2 * t = n隐含条件:t >= 0, k >= 0, s >= 0, 如果t > 0, k > 0, s >= 0m – k * p + 2 * t >= 0, n + k * p – 2 * t <= m + n Æ k * p – 2 *t <= m同时还必须:m – k * p + 2 * t <= m + n Æ 2 * t – k * p <= n, n + k * p – 2 * t >= 0 3)二元一次不定方程的整数解这个问题网上有多个介绍,可以谷歌或者百度一下,答案一大堆。
翻硬币游戏一般的翻硬币游戏的规则是这样的:N 枚硬币排成一排,有的正面朝上,有的反面朝上。
我们从左开始对硬币按1 到N 编号。
第一,游戏者根据某些约束翻硬币,但他所翻动的硬币中,最右边那个硬币的必须是从正面翻到反面。
例如,只能翻3个硬币的情况,那么第三个硬币必须是从正面翻到反面。
如果局面是正正反,那就不能翻硬币了,因为第三个是反的。
第二,谁不能翻谁输。
有这样的结论:局面的SG 值为局面中每个正面朝上的棋子单一存在时的SG 值的异或和。
即一个有k个硬币朝上,朝上硬币位置分布在的翻硬币游戏中,SG值是等于k个独立的开始时只有一个硬币朝上的翻硬币游戏的SG值异或和。
比如THHTTH这个游戏中,2号、3号、6号位是朝上的,它等价于TH、TTH、TTTTTH三个游戏和,即sg[THHTTH]=sg[TH]^sg[TTH]^sg[TTTTTH].我们的重点就可以放在单个硬币朝上时的SG 值的求法。
约束条件一:每次只能翻一个硬币。
一般规则中,所翻硬币的最右边必须是从正面翻到反面,因为这题是只能翻一个硬币,那么这个硬币就是最右边的硬币,所以,每次操作是挑选一个正面的硬币翻成背面。
对于任意一个正面的硬币,SG值为1。
有奇数个正面硬币,局面的SG值==1,先手必胜,有偶数个正面硬币,局面的SG值==0,先手必败。
约束条件二:每次能翻转一个或两个硬币。
(不用连续)每个硬币的SG值为它的编号,初始编号为0,与NIM游戏是一样的。
如果对于一个局面,把正面硬币的SG值异或起来不等于0,既a1^a2^a3^…^an==x,对于an来说一定有an'=an^x<an。
如果an'==0,意思就是说,把an这个值从式子中去掉就可以了。
对应游戏,就是把编号为an的正面硬币翻成背面就可以了。
因为an^x==0,而a1^a2^a3^…^an==x,即an^a1^a2^a3^…^an==0,即a1^a2^a3^…^an-1==0,只要在原来的x里面去掉an就可以了。
猜硬币正反必胜方法简单引言猜硬币是一种非常古老的游戏,在世界各地都有人进行这个简单而有趣的游戏。
然而,对于一些热爱胜利的人来说,他们总是希望能够有一种必胜的方法,以确保自己在每次猜硬币的时候都能笑到最后。
在本文中,我将介绍一种简单的方法,可以让你在猜硬币游戏中必胜。
方法这种方法被称为“必胜方法”,其基本原理是利用硬币的物理特性来分析猜硬币的结果。
为了更好地理解这种方法,我们首先需要了解硬币的特点。
硬币一般有两面,正面和反面。
假设你需要猜硬币掷出的结果是正面还是反面。
根据概率论,一个公正的硬币掷出正面的概率是50%,反面的概率也是50%。
也就是说,如果你完全凭运气猜硬币,你的胜率也只有50%。
然而,这种硬币的物理特性却给了我们一些机会。
首先,我们可以通过观察硬币的重心位置来判断它的一面是否更重。
由于硬币制造工艺的原因,很多硬币在制作过程中会存在一定的偏重,这导致硬币的一面比另一面更容易朝上。
因此,当你拿到一个硬币时,你可以简单地将其抛掷若干次,并观察它的落点。
如果你发现硬币掷出来的次数中,某一面朝上的次数远远大于另一面,那么你就可以判断出该面比另一面更重,因此更容易朝上。
利用这个观察结果,你可以在猜硬币的时候选择那面更重的一面。
因为有更大的概率让它朝上。
总结在猜硬币游戏中,必胜方法简单,只需通过观察硬币的重心位置来判断它的一面是否更重。
这种方法能够提高你的胜率,让你在猜硬币时始终保持优势。
然而,需要注意的是,这种方法并不能保证100%的胜利。
因为硬币的偏重程度可能是非常微小的,难以观察到。
而且,制造硬币的技术也在不断提升,使得硬币的制作越来越精细,偏重的可能性越来越小。
因此,在使用这种方法时,我们仍然需要依靠一定的运气。
但是,相比于完全凭运气猜硬币,这种方法能够提供更高的胜率,给我们更多的机会去取得胜利。
希望这个简单的必胜方法能够帮助到你,让你在下次猜硬币游戏中笑到最后!。
(转)翻硬币问题的解析2009-10-07 21:05原题目是去年的信息学奥赛题目,完善程序:题目描述:一摞硬币共有m枚,每一枚都是正面朝上。
取下最上面的一枚硬币,将它翻面后放回原处。
然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。
再取3枚,取4枚……直至m枚。
然后再从这摞硬币最上面的一枚开始,重复刚才的做法。
这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。
例如,m为1时,翻两次即可。
m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;…输入:仅有的一个数字是这摞硬币的枚数m,0 < m < r1000。
输出:为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。
输入样例:30输出样例:899program Programl;var m:integer;function solve (m:integer):integer;var i,t,d:integer;flag:boolean;beginif (m=1)thenso1ve:= ①else begind:=2*m+1;t:= 2;i:= 1;flag:=False;repeatif (t=1)thenbeginsolve:= ②flag:=True;endelse if ( ③ )thenbeginsolve:=i*m-1;flag:=True;end else t:= ④ ;i:=i+1;until flag;endend;beginread (m);if ((m>0) and (m<1000)) thenwriteln ( ⑤ );end.我们把每一次的翻转称为一次“小翻转”,从顶上开始连续翻n次称为一次“大翻转”。
最后翻到全是正面朝上的状态时,如果用了 a 次大翻转和 b 次小翻转,那么总的翻转次数是 a * n + b。
我们研究一次大翻转的置换结构。
翻硬币问题桌面上有n枚硬币, 初态是全部正面向上,现让你每轮把其中的m (2m≤n)枚翻转,希望最终全部反面向上. 请建立数学模型研究n, m 在什么条件下此问题有解或无解.解答:1.概念与性质定义:纯翻转-------m个都是正面的一轮翻转;(混合)翻转------取a (>0)个正面,m-a个反面的一轮翻转.显然,纯翻转是混合翻转的特例(a=m).设=+,(1)n sm t≤<, s为正整数.其中,t为n除以m的余数,0t m记变量k表示当前的正面数.显然,从开始,经过s轮纯翻转后k=t; 当k=0时,就成功了.性质1. 选a个正面和m-a个反面的一轮翻转后,正面数的变化量为.k m a∆=-,(2)2∆=-.特别是,做纯翻转时,k m性质2. 当k(<2m)为偶数时,只需再翻两轮必会成功.证明:若k=m , 则做一轮纯翻转必成功.≠,则先选k/2个正面和m-k/2个反面做一轮翻转,若k m1(注:因2m<n<2n-k, 故2m<2n-k, 2m-k<2n-2k, m-k/2<n-k, n-k是反面数,即这样选取是可行的. )则翻转后的正面数k k k k m k m=+∆=+-='()k=,就成功了.再做一轮纯翻转,"0≠时,只翻一轮必定未能成功,故翻两轮必是最佳方法因为k m(轮数最少)2.情形一,m是奇数(不论n是奇数还是偶数).先做s-1轮纯翻转,得k=m+t. 只有如下3种可能:(ⅰ)t=0. k=m, 再做一轮纯翻转就成功.(ⅱ)t (<m)是奇数. k已是偶数,且m<k<2m.由性质2,只需再翻两轮必会成功.(ⅲ)t (<m)是偶数. 再做一轮纯翻转后化为k=t. 由性质2,只需再翻两轮必会成功.3.情形二,n,m都是偶数. 由(1)式知t是偶数或0, 经s轮纯翻转后,k=t,由性质2,至多再翻两轮就会成功.4.情形三,n是奇数,m是偶数. 由(1)式知t是奇数, 由(2)式知, k∆是偶数或0,故无论翻转多少轮,k始终是奇数, 不会出现k=0, 即不会成功.25.综合6. 例子例1.n=8,m=3, s=2, t=2. 翻4轮必成功0------正面,1------反面例2 . n=7,m=3, s=2, t=1. 翻3轮必成功34推广把以上的条件2m ≤n , 改为 m ≤n 。
作者: 杨金珏翻硬币问题诀窍翻硬币问题诀窍
硬币问题是公务员考试出现的数学运算题型,属于逻辑类考题,这类问题变化复杂,对考生的推理能力要求高。
博大弘仕杨金珏老师将在这里介绍翻硬币问题的快速解题技巧。
首先要明白什么是“翻硬币问题”,通常题面形式是这样的:
M个硬币全部正面朝上,现在要求每次必须同时翻转其中的N个硬币,至少翻转多少次才能使全部硬币反面朝上
那么可能出现四种情况:
硬币总数(M)每次翻硬币数量(N)
奇奇
奇偶
偶奇
偶偶
上面四种情况中,只有当硬币总数是奇数个并且每次翻偶数个硬币时,不能完成要求,其他三种都可以完成翻转。
为什么不能完成这种情况呢根据奇偶的基本性质可以推导出来,每个硬币必须翻转奇数次才能实现反面朝上,现在总数是奇数,那么所有硬币翻转总数就是奇数个奇数,其结果必定是个奇数。
但是每次翻转偶数个硬币,那么硬币被翻动的总数为偶数乘以翻动次数,结果必定是偶数。
所以这种情况下是不可能完成任务的。
翻硬币问题形式多样,这里总结出了一个基本的解题步骤。
第一步:判断总个数是否与每次翻的个数呈倍数关系。
如果是倍数关系,翻动次数=M÷N
第二步:如果没有倍数关系,考虑硬币总数的奇偶情况。
当总数为偶数
(1)每次翻的个数是总数减一
【例1】现有6个一元面值硬币正面朝上放在桌子上,你可以每次翻转5个硬币(必须要翻转5个),问你最少要经过几次翻转可以使这6个硬币全部反面朝上
次次次次
【解析】本题属于归纳推理问题。
一个硬币要翻面,需要翻奇数次,一共有6个硬币,每一次翻转5个,那么必须翻转偶数次才能保证每一枚硬币翻转奇数次,故排除A、C。
因为每次翻五个,则有一个没被改变,或者说每次是在原来的基础上变一个,一共有6个硬币,每次变一个,那么需要6次才能全部变完。
具体过程如下:
故需要6次,故正确答案为B。
这类问题的解答公式为:翻动次数=M
翻动方法:只要按照第一次第一个不翻,第二次第二个不翻,按照此方法进行操作就可以成功。
(2)除了上述以外情况,要计算翻动次数,我们采用余数分析法。
首先用总数(M)÷每次翻的个数(N),表达式为:
M÷N=a……b
上面式子中,a为商,b为余数。
那么我们把余数分成三种情况:
①b=1,翻动次数=a+1
【例2】共有10个硬币正面朝上,每次翻动3个,总共翻动几次才能反面朝上
次次次次
【解析】利用公式:M÷N=10÷3=3……1。
余数b=1,翻动次数=3+1=4。
这个公式在怎么推导出来的呢
此题计算为10÷3=3……1,余数为1,我们需要改写余数为10÷3=2……4,相当于翻了2次3个硬币,还剩下4个硬币没有翻过来。
OOOOOO OOOO
XXXXXX OOOO
那么我们将这4个硬币分成两组,每组两个。
接下来翻其中的2个硬币和前面已经翻成反面的1个硬币。
XXXXXO XXOO
最后把剩下的两个正面硬币和刚才翻成正面的那个硬币一起翻过来。
XXXXXX XXXX
只要余数是偶数,都可以采用这样的方法翻转。
再回过头来看下最初计算式子,10÷3=3……1,我们改写余数为10÷3=2……4,商减少了1,余数变成了1+3=4,余数加除数。
根据奇偶基本性质,这里变化的余数一定是个偶数,因为被除数是偶数,被除数=除数×商+1,要使余数为1,除数和商必定也是奇数。
所以变化后的余数等于1+除数,结果必定为偶数。
偶数就需要2步完成翻转,总体上在原来商的基础上只增加了1,所以余数b=1时,翻动次数=a+1。
②b=偶数,翻动次数=a+2
【例3】共有92个杯口朝上的杯子,每次翻动11个杯子,使其杯口朝下,总共翻动几次才能让所有杯子反面朝下
次次次次
【解析】利用公式:M÷N=92÷11=8……4。
余数b=偶数,翻动次数=8+2=10。
翻动方法和上一道例题相同,将最后剩下的4个杯子分成两组,先翻其中的2个和前面已经翻过的2个,然后刚好剩下4个杯口朝上的杯子。
总共需要10次。
翻动方法如图所示:
(第8次) XXX …… XXX XXX XXX OOOO
(第9次) XXX …… OOO OOO OOO XXOO
(第10次)XXX …… XXX XXX XXX XXXX
③b=奇数,翻动次数=a+3
【例4】有18个房间开着灯,如果每次同时拨动5个房间的开关,经过几次拨动,灯全部关上
次次次 D.几次也不能
【解析】利用公式:M÷N=18÷5=3……3。
余数b=奇数,翻动次数=3+3=6。
余数是奇数时,为什么要翻3次呢是如何翻转的呢下面我们用硬币翻转来代替灯的开关。
首先完成三次翻转,如图所示:
OOOOO OOOOO OOOOO OOO
XXXXX OOOOO OOOOO OOO
XXXXX XXXXX OOOOO OOO
XXXXX XXXXX XXXXX OOO
接下来将剩下的3个全部翻转,并且把前面翻过来的2个再次翻转。
XXXXX XXXXX XXXOO XXX
现在就和前面讲的余数是偶数情况相同了。
把剩下的分成两组,先翻其中的一组,不够的在前面翻过里面翻转。
OOOOX XXXXX XXXXO XXX
最后剩下的刚好翻完。
XXXXX XXXXX XXXXX XXX
前面我们讨论的是总数是偶数,总数是奇数时有两种情况:
(1)每次翻转的个数为奇数,那么按照上面讲的余数分析法解决。
M÷N=a……b
①b=1,翻动次数=a+1
②b=偶数,翻动次数=a+2
③b=奇数,翻动次数=a+3
(2)每次翻转的个数为偶数,这种情况下无法完成任务。
【例5】有7个杯口全部向上的杯子,每次将其中4个同时翻转,经过几次翻转,杯口可以全部向下【09山西】
次次次 D.几次也不能
【解析】根据公式,不可能完成任务。
所以选D。
要想杯子杯口朝下的话,需要翻转奇数次,所以七个杯口要全部向下的话,翻转的总次数为7个奇数的和,必定也是奇数,所以总共也是需要翻转奇数次才行。
但是每次翻转其中4个,不论翻多少次总数都是偶数,因此无论翻几次都不行。
正确答案为D。
下面我们总结一下翻硬币问题的解题方法。
M个硬币每次翻N个需要几次
一、倍数成立 m/n
二、无倍数
1、m为奇数,n为偶数,无法完成
2、m为偶数时
当n为奇数且比m小1是,翻m次3、其余情况
m/n=a.....b
当b为1,则需a+1
b为偶数,则需a+2
b为奇数,则需a+3。