一个猜数字的问题。怎么9次内猜到这个数。

:0-9中随即抽选4个数,组成4位数,(这十个数字可以重复也可以不重复,我们这次仅仅讨论他们不重复的情况,也就是8854,4154这样的数值是不行的.1234,5678这样的数值是合法的.) 然后你猜这个数值,计算机给出你猜的结果,用xAyB表示,A表示你猜对,并且这个数值的位置也正确的有X个,B表示你猜对,但是位置的错误的数值有Y个.只能用9次机会。怎么猜才能在9次内猜到这个数。3楼不能追问了,你的答案错了,是8503.

这个记得有游戏是专门练习来的,好像8次就要猜出来,很好玩,不过很难几句话解释清楚,我将系统选中的4个数字以下统称为“选中数字”,一般系统是数字和位置对了的标记为A,但是不知道哪个数字是A,有几个A表示罗列的4个数字里有几个数字是选中数字并且位置对了,B是指数字是选中数字但是位置不对。
我告诉你一个大概操作方案,就是将 0-9分1、2、3、4一个组,5、6、7、8一个组,0和9一个组。你先测试前4个里面和后4个里面各有多少个数字在组里,然后各组切换两个数字,根据每组里被选中的数字的多少来选择切换数字的次数,从而确认位置,此步里你可以将前面确认出来没有“选中数字”的组里选一个不是的数字来替换前面确定了有“选中数字”的组里,来体现到底哪些是“选中数字”,做这一步的同时你可以小范围切换组内数字位置来确认数字位置的正确性。
10个数字如何分组是个人习惯,不妨碍的,但是自己选好后就一直使用那个习惯,比较容易头脑清楚。未知情况的换位置的范围不要太多,只能两个之间换,最好是搭配其他已经确认的情况来小范围变换,充分利用前期出的结果来排除已经不可能的情况,从而尽早确认正确位置。
比如系统选择9154:
1、第一次罗列1234,提示我1A1B,即2个数字是选中数字,有一个位置对。
2、第二次罗列5678,提示0A1B,此时得出一个结论,因为1-8里面才出现3个选中数字,那么0和9里有且只有一个是选中数字。
3、第三次罗列0987,系统提示0A1B,选用0和9加入测试,同时切换8和7位置来顺带推断位置正确性,因为前期测试表明0和9里有且只有一个选中数字,目前本轮4个数字只有一个选中数字,所以排除7和8是选中数字。同时说明5和6里只有一个是选中数字,此后,要开始进行位置的排除法了。
4、第四次罗列8560,系统提示0A1B,前期太多不确定因素,因此引入一个非选中数字8,同时挪动位置不对的5和6,于是确认了0不是选中数字,9是选中数字,同时通过换位排除了一些数字不可能在的位置。
5、第五次罗列5634,系统提示1A1B,这么排列是为了确认第一次罗列数列里哪个是位置对的,因第二次罗列可以判断5和6之中只有一个选中数字且两者位置必定不对,所以3和4里只有一个选中数字且位置正确。
6、第六次罗列9634,系统提示2A0B,本次选数使用了选中数字9,然而总的选中数字的数量未增加,说明替换掉的5是选中数字,6不是,且换上来的9位置也对。已经确认的位置正确的选中数字9,在接下来的罗列里大部分时候要一直列出,争取尽早获得所有数字正确排位的可能。
7、第七次罗列9254,系统提示3A0B,本次选数首先确认首位的9,然后加入第六次罗列确认的5(第二轮罗列确认5不在第一位,第四轮罗列确认5不在第2位,所以本轮放到第三位来确认位置对错),因为第六轮和第一轮罗列确认了1和2之间只有一个位置不对的选中数字,拿位置不变的2进来做测试替换掉3,同时保持4的位置不变,系统提示3A0B,没有位置不对的数字了,假如2是选中数字,则必定此轮系统提示中至少要出现一个B,但是系统提示没有出现B,就说明2不是选中数字,1是选中数字。同时说明了其他3个数字都是选中数字且位置正确。
8、第八轮罗列9154,获得正确答案。没说的,第七轮罗列确认了9X54都是对的,又因为1和2里剔除了2只剩一个选中数字1,填入唯一的位置,就是正确答案。

要点:前两轮罗列基本是固定模式,第三轮用身份明确的0和9搭配前两轮里不确定性最小的一组数字来测试,第四轮使用确认了的选中数字或者非选中数字,替代测试前两轮里另一组不确定性较大的一组,同时切换数字位置来试验哪些是选中数字、哪些位置是被排除了。接下来第五第六第七第八就很灵活了,基本是尽早使用轮换法寻找“选中数字”和排除不正确的摆放位置的过程。

楼主有疑问可以追加提问,时间不早了只有匆匆改了两次,并且重写了2遍攻略,才选了这个相对比较麻烦的数字9154,这个数组针对我自己的选数习惯来说是最麻烦的,1234、5678、09这三组里各有一个到两个“选中数字”,是最麻烦的一种情况,使用别的数组运气最好的可以4-5次就推算出来,无法体现后期选数和排序的方法。练逻辑推理这个游戏真的很好,知道推论方法后,用得越多,反思越多。越容易出更快捷的方法,楼主加油~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-02
我以前玩过这个游戏,我的做法是从1234,2345,3456这样顺着试下去。
不管显示什么结果,都试6次,这样就把所有的数字全部试过了,然后把这六次的AB的情况统计一下,基本上再有一两次就可以做出答案了。
你可以这么试试
第2个回答  2012-11-02
先问对方这个数的范围,比方说100以上或以下,然后再慢慢缩小范围,就猜得出了
第3个回答  2012-11-02
第一次猜0123,第二次猜1234。。。。第七次猜6789.。。。第9次猜8901

你随便假设一个数让我猜,我用这个方法猜9次,你分别用xAyB告知我,我就能告诉你那个数是什么

呃, 上面有人答对了,浪费精力追问

必须在9次内答对,要用什么方法猜?

追答

具体要从给出的xAyB来判断,你现在心中想一个数(不告诉我),然后根据我猜的顺序把xAyB报给我,我猜给你看,并说清理由,你就明白了

追问

一次B两个、二次B一个、三次B两个、四次B两个、五次B一个、六次B两个、七次B一个、八次B两个。数字的位置也要正确。
A:代表正确数字在正确位置上B:代表正确数字不再位置上。

追答

你给的怎么可能1个A都没有?????

追问

没有

追答

9012,第一位我从0猜到8,第二位我从1猜到9,第三位我从2猜到0,第四位我从3猜到1,那第9次没猜到一个A,就只能是9012了

你自己没搞懂xAyB!!!8503难道你第一次猜不就是1A0B吗??????你搞清题意再来提问

第4个回答  2012-11-02
对于我有点难