猜数字游戏 猜数字游戏编程c语言程序流程图


猜数字游戏 猜数字游戏编程c语言程序流程图

文章插图
大家好,小豆豆来为大家解答以上的问题 。猜数字游戏编程c语言程序流程图,猜数字游戏这个很多人还不知道,现在让我们一起来看看吧!
1、首先强烈谴责"帝之魔王"的抄袭行为这个问题,研究一下的确蛮有意思,下面是我的想法,不一定能解决问题,看可能可以给别人以启发.我主要研究的是<在最坏情况下最少几次猜中 。
2、策略如何?>第一步,因为各个数都是一样的,所以第一次输入0123,现在轮到出题者,我相信没人会给他A,顶多给他B,但是给他几个B合理呢?0B,下次猜到B的期望E=4*4/6=8/31B,E=1*1/4+3*3/6=7/42B,E=2*2/4+2*2/6=5/33B,E=3*3/4+1*1/6=29/124B,E=4作为出题人,希望对手猜对B的期望为最小,所以,选择给他2B.第二步,输入4501,再次轮到出题者,现在问题开始复杂了.我觉得可以把4501分为两部分,45和01,其中45是新的,按上题的方法继续做,0B,E=2*2/4=1;1B,E=1*1/2+1*1/4=3/4;2B,E=2*2/2=2;所以出题者会在45中给1B.其实复杂的是01部分,因为他涉及到A的部分,我只能假设,出题人在不得不给A时才给A这种情况,如果算期望的话,我已经搞不清了,所以从简了 。
3、而且这假设我觉得不一定不合理.从给B部分,我们可以同样按照开始的思路0B,E=2*2/2=21B,E=1*1/2+1*1/2=12B,E=2*2/2=2所以01中会给一个B,现在猜题者知道的东西有0,1中有1个;2,3中有一个;4,5中有一个;6,7,8,9中有一个.综上,第2步,出题者给的是0A2B.第三步,猜题者这一步,稍微聪明点,从4组数中分别去4个数,最起码可以确定,3个数字.但是我们想,作为出题人,在6,7,8,9中,如果是一个数一个数猜,他肯定,会将最后一次猜的设为正确的以增加你猜题次数,也就是说,即使你从现在起,4步后,将6,7,8,9中正确数字的位置确定下来,也需要4步才能,将4个数字都确定.所以这种假设下,最少需要猜加上前面的两步,共6步.如果第三步猜2046.出题人可以不给A就不给A的前提下,理智出题者给的应该是,0A1B为什么给1B不给0B呢,如果给0B,那么,猜题人就知道前三组数字中1,3,5是必对了,除了在确定A是比3B有优势,其他地方没优势.而给1B而不给2B的原因也就在于,确定A的时候1B比2B更有优势(猜题者更难猜)这样对猜题者来说,是很麻烦的,因为,他不知道1B是哪个,这次作答几乎对确定B没有任何贡献,所以,猜题者不应该出这些数字.如果前三组数字只出现1个,那么不仅可以唯一确定这个数字所在组的B,而且对6,7,8,9中选B也有积极意义现在总猜题情况为0123,4501所以第三步,出6078.问题越来越复杂了,对于0可以给B也可以不给,对于6,7,8可以给B也可以不给,0B,1,9肯定是B;2B,1肯定是B,而且6,7,8之间肯定有B,但如果给1B,猜题折还需要猜测,这个B来自哪里,增加了猜题难度,所以出题者给0A1B.第四步,现在总猜题情况为0123,4501,6078.后面在像前面一样分析,我已经吃不消了,我就说我的猜题策略吧.第四步7890如果第三步中,B是0的话,那么,出题者该给答案1A1B(沿着这个假设,往下,总猜题情况为0123,4501,6078,7890.现在知道的是0位置已经确定,9确定为B.第五步9240,如果9位置对了,那么,如果给2A0B那么结果必然是9350.如果给2A1B结果必然是9430,如果给3A0B,结果可能是9250和9340也需要两步,最不好的情况就是要7步;如果9位置没对,我相信,在两步也能解出来.)只考虑这中情况,出题人就可以将你的步数限制到最少7步如果第三步中,B是6,7,8中的一个,那么,0肯定不是B了,1肯定是B,而出题者只用考虑B是在7,8中,还是6,很显然,出题者会让B在7,8中,所以给的答案是0A1B.总猜题情况为0123,4501,6078,7890第五步8215,出题者0A2B第六步5381,出题者1A0B===>2741,1A2B===>3751,57312A1B===>34813A0B===>4381.只有这四种情况,是由于受到前面的限制.这中结果也需要7步我不保证自己证明的都很严密,但作为一个解题者,我的感觉是,解这个题目可以步数更少些(虽然我也不知道能不能再少),如果有人能以更少的步数解出,我也会崇拜之,但如果说解这题目要比七步多,我就不同意了,我是完全站在出题者的立场,为难猜题者的思路的假设下去,这也是最糟糕的情况,这也应该是步数最多的情况,如果哪里不清楚可以问我,或者你认为自己可以让我7步内猜不出,可以找我试试 。
【猜数字游戏 猜数字游戏编程c语言程序流程图】本文到此分享完毕,希望对大家有所帮助 。