有备无患800字作文,猜数字?

猜数字至少需要几步才能保证猜出来? | 死理性派小组 | 果壳网 科技有意思
881831人加入此小组
以前经常玩的游戏:电脑随机产生一个数字不重复的四位数。你每次猜一个四位数电脑会将你提交的数与它自动产生的数进行比较,结果显示成"*A*B"。A代表位置正确数字也正确,B代表数字正确但位置不正确。比如:"2A2B"表示您有2个数字的位置正确且数值也正确,除此以外,您还猜对了2个数字,但位置不对。那么至少需要几步才能保证一定猜出来啊?
+ 加入我的果篮
数学/化学爱好者
1234 -& 0a1b5678 -& 0a2b这种开局很棘手 很久不玩了,不过记得一般也就10次能解决
我的方法是首先来确定目标数的分部,然后用位置不重复的测试来确定目标数,在目标数确定后,回头根据a b的分部来推算正确位置。一般6,7次左右。中学里上课文曲星上玩玩的没认真研究过。。。
初中那会儿文曲星风靡的时候专门写过程序来玩那个猜数字程序,实战结果&=6次。只是猜想,不知道怎么证明~~
电子工程专业
的回应:初中那会儿文曲星风靡的时候专门写过程序来玩那个猜数字程序,实战结果&=6次。只是猜想,不知道怎么证明~~算算信息熵?
有一种玩法是事先一下子给出N个猜测,再根据这N个猜测对应的结果给出最后答案。所以可以如下,10个数猜10次,记下结果列出10个方程x1+x2+x3+x4=a1x2+x3+x4+x5=a2x3+x4+x5+x6=a3...ai表示4个数中存在的个数,可求出有哪些数字,又因为每个数都在4个不同位置分别出现过,根据位置是否正确可给出最后答案。这种方法既不需要AI,也不需算概率。当然这肯定不是最优解呵。
的回应:算算信息熵?恩,我是这样干的,每次选择获得信息期望最大的数字组合(比如说猜出一个0A0B获得的信息量比1A1B神马的都要大)。但是能否证明至多6次“必定”能够猜出?贴段程序运行输出,源码找不到了,只有exe~~Initialize done!*************************Round 15040 possible results.required_info = 12.299208 bits1, Most valuable: 0 , 1 , 2 , 3 = 2.771152 bits2, Most possible: 0 , 1 , 2 , 3Result: pick=1, A= 1 , B= 1Infomation Got= 2.807355 bits.*************************Round 2720 possible results.required_info = 9.491853 bits1, Most valuable: 0 , 1 , 4 , 5 = 2.962067 bits2, Most possible: 0 , 2 , 4 , 5Result: pick=1, A= 0 , B= 2Infomation Got= 2.633872 bits.*************************Round 3116 possible results.required_info = 6.857981 bits1, Most valuable: 4 , 6 , 2 , 1 = 3.283087 bits2, Most possible: 1 , 4 , 2 , 6Result: pick=1, A= 1 , B= 1Infomation Got= 2.536053 bits.*************************Round 420 possible results.required_info = 4.321928 bits1, Most valuable: 7 , 0 , 2 , 4 = 3.246439 bits2, Most possible: 7 , 0 , 2 , 4Result: pick=1, A= 0 , B= 2Infomation Got= 3.321928 bits.*************************Round 52 possible results.required_info = 1.000000 bits1, Most valuable: 0 , 1 , 2 , 5 = 1.000000 bits2, Most possible: 4 , 2 , 5 , 3Result: pick=1, A= 0 , B= 1Infomation Got= 1.000000 bits.*************************final result: 4 7 1 3*************************
的回应:有一种玩法是事先一下子给出N个猜测,再根据这N个猜测对应的结果给出最后答案。所以可以如下,10个数猜10次,记下结果列出10个方程x1+x2+x3+x4=a1x2+x3+x4+x5=a2x3+x4+x5+x6=a3...ai表示4个数中存在的个数,可求出有哪些数字,又因为每个数都在4个不同位置分别出现过,根据位置是否正确可给出最后答案。这种方法既不需要AI,也不需算概率。当然这肯定不是最优解呵。是啊~这样没能充分用上“A”和“B”的信息~
飞面神教泛面宗信徒
这个我查过相关的资料。有人穷举过,记得是一共可以分几千种情况,然后有5种情况下6步是无法猜中的,也就是说要7步才能保证猜中。
的话:这个我查过相关的资料。有人穷举过,记得是一共可以分几千种情况,然后有5种情况下6步是无法猜中的,也就是说要7步才能保证猜中。偶然看到。求资料。
额、这个写过类似的程序、反正我写的大概平均在5次多、听一个高人说他之前写过平均4次的
飞面神教泛面宗信徒
的话:偶然看到。求资料。抱歉。。。我查这个相关资料距现在至少也有六七年了,实在想不起来当时在哪个论坛看到的。。。
的话:抱歉。。。我查这个相关资料距现在至少也有六七年了,实在想不起来当时在哪个论坛看到的。。。有个和我一起搞OI的小朋友在弄这个。现在打算拿这个做课题去参加丘成桐数学竞赛(先Orz个)。所以看到了问一下~
算算信息量吧每猜一次得到的结果有15种可能(5+4+3+2+1=15)中不重复的数值有5040个(10*9*8*7=5040)猜三次得到的结果有15^3=种可能,所以第四次猜不出来猜四次得到的结果有15^4=种可能,所以第五次能猜出来(理论上)所以说猜四次是不能保证猜出的。至于猜五次行不行,还需要进一步的研究……
飞面神教泛面宗信徒
的话:有个和我一起搞OI的小朋友在弄这个。现在打算拿这个做课题去参加丘成桐数学竞赛(先Orz个)。所以看到了问一下~那个人记得是个中学教师吧,和另一个人在一个论坛上讨论的。基本思路是(年代久远可能有出入):固定用一组数作为起始猜测,当获得一次反馈后,可能集减小。然后根据可选集中的组合,求出一种猜测,使得对方无论给出什么样的反馈,在下一步能得到的最大可选集最小,依此类推,可以保证在最少步骤猜出答案。然后他用所有可能的组合去试这个方法,结果发现有几个组合没法六次猜出。据他说,遍历所有组合花了他很长时间。
(C)2016果壳网&&&&京ICP证100430号&&&&京网文[-239号&&&&新出发京零字东150005号&&&&
违法和不良信息举报邮箱:&&&&举报电话:【闯关】 额外题-猜数字, 你们说的BUG在哪里?_端脑吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:32,463贴子:
【闯关】 额外题-猜数字, 你们说的BUG在哪里?
出题人: 你们都看到了我给你们的正整数,那么规则是:禁止明示或暗示对方你们所看到的数字,总之只要我听出来的话,就算你们失败;猜出对方看到数字是几,只允许猜一次;给你们一个小提示,你们两个人数字相乘的结果,不是8就是16。 开始吧!刘伊雅: 啊,铡刀……出题人:你们的时间只有两分钟,时限到的时候,你们俩人头落地。【夏驰:靠,我是2,乘积是8或者16,那刘伊雅看到的不是4就是8了。最快的办法,应该是我暗示她我的数字,然后……】出题人:我的眼睛可是很毒的。任何语言上的暗示,或者小动作,我都能看得出来。我劝你们最好不要耍这种小聪明。夏驰:哼,小聪明……接下来,就是你为碰到我这样的对手而后悔的时间了。刘伊雅:啊,夏驰——夏驰:她看到了什么数字——我不知道!刘伊雅:额……你不知道你狂个屁啊!现在可是生死攸关的时间,你是在搞笑吗?【刘伊雅:难道,夏驰这是在暗示我?】【夏驰:发现吧,刘伊雅。快发现我的提示吧!】刘伊雅:我也不知道。夏驰:那我还是不知道。刘伊雅:我也还是不知道。出题人:你,你们这是在干嘛?我警告你们,时限已经到了。夏驰:刘伊雅看到的数字是4。刘伊雅:夏驰看到的数字是2。出题人:你,你们怎么猜出对方的答案的?夏驰:符合相乘结果不是8就是16的正整数,分别为1、2、4、8、16。我的数字是2,两数相乘等于8或16,那说明刘伊雅手中不是4就是8,先按顺序排除一下,如果她看到的数字是8,那她就会知道,我这里不是1就是2。我第一次说我不知道,就是向她表明我这里肯定不是16,如果是16的话,那我肯定知道,她就是1,根本不需要猜。她只要稍微聪明一点,就会发现我这话语中的蹊跷,而她也回答不知道,那就表明她也不是16,而且也不是1。如果她是1的话,在前面我已经否定了我是16的可能,那她肯定知道,我这里只可能是8了。
我第二次说不知道,就表明,即使我知道她那里不是16和1,我还是不知道结果,这就说明我这里肯定不是1,否则就知道她那里肯定是8了。这时,如果她是8的话,知道我不是1,那她应该知道,我这里的数字只能是2。结果她还是说不知道,那答案就出来了,她的数字必然不是8。所以刘伊雅的数字,只能是4。出题人:哈哈哈哈……季陆之后,很久没有遇到这么有料的玩家啦! 恭喜你们成功过关。系统:欧耶……恭喜两位选手夺得了试炼关的优胜,特别是夏驰选手的表现哦!不过,刘伊雅选手的表现也不错。夏驰选手得6分。完成隐藏任务——最后一秒通结局,追加3分,总分9分,账户余分9分,评价D级。刘伊雅选手获得1分……刘伊雅:看来,我们要说再见了呢……
买了十几双丝袜回来了,...
-_-#为什么我要作死的一...
如果这就是腾讯更新的内...
2017看中超 牛魔王购票有保障!
十五字十五字十五字十五字十五字
这贴水得好好好好好好好好好好好啊!
就说前面存在的bug、只允许猜一次、夏池第一次回答不知道就得淘汰了。好了后面有关数字方面bug我不想多说了。
因为从刘的角度来说 排除到最后夏驰应该还剩下2和4
有人说,这题的BUG在于最后刘伊雅也猜出了夏驰的数字,无法“自圆其说”而成为BUG。还有人说,夏驰第一次说“我不知道”就已经猜过了,并且应该被淘汰,没被淘汰就是BUG。
理顺一下,说夏驰“我不知道”应该被淘汰的,这个是不对的,游戏设定就是这么玩的,不是拼主角光环靠运气猜——既然动画中的“出题者”没有看出来他们的暗示,就是可以的。--------------------------------出题人: 你们都看到了我给你们的正整数,那么规则是:禁止明示或暗示对方你们所看到的数字,总之只要我听出来的话,就算你们失败;猜出对方看到数字是几,只允许猜一次;给你们一个小提示,你们两个人数字相乘的结果,不是8就是16。 开始吧!--------------------------------从后面的剧情可以看出,端脑系统没有把这个“出题者”设计得非常聪明,让夏驰的暗示能够起作用,那么说明这个暗示是生效的,没有让“出题者”“听出来”。所以哦这个“我不知道”就应该淘汰的BUG是不存在的。
有人说,因为从刘的角度来说 排除到最后夏驰应该还剩下2和4,而刘伊雅猜出了夏驰的数字是2,是一个BUG。那么问题来了,究竟能不能猜出来呢?--------------------------------------我们换个角度来看,刘伊雅拿到的数字是4,那么她很容易知道夏驰的数字不是1或者8或者16,只能是2和4中的一个。
但是,如果夏驰拿到的数字是4,夏驰还能这样猜到刘伊雅的数字吗?答案是不行的。可是,偏偏在两次“不知道”之后,夏驰知道了刘伊雅的数字,就说明了夏驰看到的数字是2。---------------------------------------所以这个BUG也是不存在的,仔细想想,剧情依然是合理的。
最开始看是看的动画,所以看了这个题目,不过觉得这个题目较为简单就没仔细看。后来有人说这里有BUG,所以仔细推敲了一下,应该是没有BUG的。如果有人还是要说有BUG,可以再推敲推敲。后来在漫画中没有找到这么一节(漫画我是从闯关之后的情节接着看的,返回去找确实没找到),说明动画比漫画做得更加用心些,希望作为粉丝的我们,漫画和动画都支持一下。
这类“我知道你不知道”的题目,有名的是问题,这个真的很难,我想了3天也没有想通,后来在网上看了很多解答才想通了。最开始我看的是一个“问题”的演化版,我还特意在QQ空间作了解答。有兴趣的可以看看。【------------------------------这类问题有个很迷惑的地方就是 “我不知道” 而且 ”我知道你不知道“ ,但是要解这个问题,还必须有另外一个条件——”我知道了“ 然后 “我也知道了”。------------------------------动画中的这个问题,如果忽视了最后的 夏驰说他知道刘伊雅的数字是4 这个条件,还是说不通。此题的难度真的很一般,我相信漫画(或者动画)的策划者在思考这个谜题的时候,应该不会出BUG。至于有人说官方给出了承认BUG的反馈,我只能说,如果真的有人承认了BUG的存在,那个人必定不是最初出题的或者策划的。
2017亚冠购票专业平台,就选?牛魔王?
好厉害,一群大神
暗示是什么,我觉得暗示解释的太扯了
原漫画开挂版石头剪子布此贴终结
不是BUG啊,因为如果男主拿到的是4,那么他就不可能铁定说出刘的数字是4,因为他俩乘积是8或者16,所以如果男主是4的话,他还会说不知道,因为如果他是4,那么他不可能确定刘拿的是4从而立刻说出来。(因为刘也可能是2.),但只有男主是2,他就可以立刻确定刘拿的是4,因为只有2X4=8,而之前刘拿8的可能性已经被排除,所以,刘听到男主铁定说出她拿得是4的时候,就立马知道男主手上是2了。
bug在于团队合作游戏为什么夏池拿的分数高,而另外一人分数低
猪脚光环。
出题人已经说了有时限的。但是又禁止明示或者暗示,说不知道如果算回答,那他已经输了。如果算提示,也犯规了。也就是不让暗示或明示,就是不让说话啊?那到底是联合对抗?还是单人解谜啊?硬猜?真相只有一个!主角光环!
不知道该说智商太低还是刘依雅智商高!无奈,凑合看吧。手里是2,题目规定乘机8-16她手里不是4就是8,和1-16扯得到吗?
就和考高玩那场一样,最后快死了反而翻牌了!可能吗?正常思维就是,作者把道理摆在那等着主角拿起来反抗,这就是个坑。否则他为什么会觉得自己要完了?然后打断以后一下子讲了那么多他说以乱治乱的话,其实这些话就是对的,不乱。所以事先挖好后路,让猪脚走。一部影视作品而已。如果作者身临其境,不一定怎么样呢!现在国产悬疑很难有柯南那样漏洞少的了。
但是良心发现,或者凶手故意漏破绽,这都是常用伎俩
贴吧热议榜
使用签名档&&
保存至快速回贴算法竞赛入门经典 例题3-4 猜数字游戏的提示
算法竞赛入门经典 例题3-4 猜数字游戏的提示
实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)。
输入包含多组数据。每组输入第一行为序列长度n,第二行是答案序列,接下来是若干猜测序列,猜测序列全0时该组数据结束。n=0时输入结束。
样例输入:
1 2 2 2 4 5 6 6 6 9
1 2 3 4 5 6 7 8 9 1
1 1 2 2 3 3 4 4 5 5
1 2 1 3 1 5 1 6 1 9
1 2 2 5 5 5 6 6 6 7
0 0 0 0 0 0 0 0 0 0&
样例输出:
#include &iostream&
int main()
& & int n,sum=0;
& & while(cin&&n &&n) & & & & & //当n不等于0时输入
& & & & sum++;
& & & & cout&&&Game&&&& &&&sum&&&:&&&
& & & & int* a=new int[n+1];
& & & & int* b=new int[n+1];
& & & & for(int x=1;x&=n;x++)
& & & & & & cin&&a[x];
& & & & for(;;) & & & & & & & & & & &//无限循环,可以这么写,因为有条件:当b[0]=0跳出
& & & & & & int A=0,B=0;
& & & & & & for(int y=1;y&=n;y++)
& & & & & & {
& & & & & & & & cin&&b[y];
& & & & & & & & if(a[y]==b[y]) & & & //边输入边判断,简洁
& & & & & & & & & & A++;
& & & & & & }
& & & & & & if(b[1]==0) & //break可以跳出一个for
& & & & & & & &
& & & & & & for(int z=1;z&=9;z++)
& & & & & & {
& & & & & & & & int c1=0,c2=0,
& & & & & & & & for(int m=1;m&=n;m++)
& & & & & & & & {
& & & & & & & & & & if(a[m]==z)
& & & & & & & & & & & & c1++;
& & & & & & & & & & if(b[m]==z)
& & & & & & & & & & & & c2++;
& & & & & & & & }
& & & & & & & & if(c1&=c2)
& & & & & & & & & & tmp=c1;
& & & & & & & & else
& & & & & & & & & & tmp=c2;
& & & & & & & & B=B+
& & & & & & }
& & & & & & cout&&&(&&&A&&&,&&&B-A&&&)&&&
& & & & & & }
& & return 0;
这个题目的主要问题是求B,按数学的思想,把答案序列和猜测序列对同一个数字,出现的次数最少的挑出来,这个数字最少的,减去对于这个数字相同的次数,就是这个数字的B。求出所有1-9中,在答案序列和猜测序列中出现的最小次数之和,减A就是B。
我的热门文章
即使是一小步也想与你分享

我要回帖

更多关于 有备无患的意思 的文章

 

随机推荐