猜数字的解法 小游戏猜数字解法

\u731c\u6570\u5b57\u7684\u89e3\u6cd5\u8868

\u4ee5\u4e0b\u5217\u51fa\u4e0a\u8ff0\u51e0\u79cd\u89e3\u6cd5\u5e94\u7528\u4e8e\u4e0d\u7528\u89c4\u5219\u65f6\u7684\u731c\u6d4b\u6548\u679c\uff0c\u4f9b\u53c2\u8003\u3002\u8fd9\u4e9b\u7ed3\u679c\u7531\u8ba1\u7b97\u673a\u7a0b\u5e8f\u7b97\u51fa\u3002 \u4e0b\u8868\u5217\u51fa\u5404\u79cd\u7b97\u6cd5\u5e94\u7528\u4e8eMastermind\u89c4\u5219\uff084\u6570\u4f4d\u30016\u6570\u7801\u3001\u53ef\u91cd\u590d\uff09\u65f6\u7684\u6548\u679c\u3002 \u7b97\u6cd5 \u5e73\u5747\u6b21\u6570 1\u6b21 2\u6b21 3\u6b21 4\u6b21 5\u6b21 6\u6b21 7\u6b21 8\u6b21 9\u6b21 \u7b80\u5355\u7b56\u7565 5.765 1 4 25 108 305 602 196 49 6 \u6700\u574f\u60c5\u51b5\u6307\u6807 4.476 1 6 62 533 694 - - - - \u5e73\u5747\u60c5\u51b5\u6307\u6807 4.395 1 10 54 645 583 3 - - - \u9884\u671f\u6b65\u6570\u6307\u6807 4.424 1 4 70 611 590 20 - - - \u53cd\u9988\u4e2a\u6570\u6307\u6807 4.373 1 12 72 635 569 7 - - -

768\u5c0f\u6e38\u620f\u554a\uff0c\u4f60\u81ea\u5df1\u8fdb\u53bb\u627e\u5427\uff0c\u5730\u5740\u662f768a\u7684\u90a3\u4e00\u4e2a

\u627e \u89e3\u8c1c\u5c0f\u6e38\u620f\u5408\u96c6 \u5c31OK\u5566

求解猜数字游戏的策略通常有两个目标:一是保证在猜测次数限制下赢得游戏,二是使用尽量少的猜测次数。第一个目标追求的是最坏情况下的猜测次数最少,第二个目标追求的是平均情况下猜测次数最少。对于某些数码和数位的规则组合,这两个目标不能同时实现。例如,对于4个数位、6个数码的 Mastermind 游戏,平均猜测次数最少的策略需要平均 4.340 次,但最坏需要6次猜测;如果限制猜测次数最多为5次,则平均猜测次数最少的策略需要平均 4.341 次。
目前解法最少需要7次猜测,平均次数最少的解法由田中哲朗与1996年提出,平均次数为5.213次。
系统的猜测策略可分为三类:简单策略、启发式策略和最优策略。下面以标准规则(10个数码,4个数位,不含重复数字)为例,介绍这几类策略。这些策略也适用于其它规则变体。
这种策略非常直接——每次都猜可能答案中的第一个。例如,首先猜测1234,如果得到的反馈是 2A0B,那么可能的答案包括1256,1257,5236,等等。根据简单策略,下一次就猜1256,因为1256是所有可能答案中最小的数字。
简单策略的优点是速度非常快,缺点是所需猜测次数很多。对于标准规则,简单策略最多需要9次猜测,而平均需要5.560次。
这类策略是猜数字游戏最常用的解法。其算法步骤如下:
a. 首先猜 1234,得到第一个反馈(xAyB)。
b. 从所有数字中,筛选出满足已知反馈的所有可能数字,称之为“可能集”。
c. 对于所有数字(而不仅限于筛选出来的可能集),逐一评估每个数字的“好坏”,并给其打分。选取得分最高的那个数字猜。如果有多个数字的评分一样高,则优先选取可能集中的数字。
d. 重复步骤 b-c,直到猜出 4A0B 为止。
显然,启发式策略的重点在于如何评估一个数字的“好坏”?人们提出了多种直观的评价指标。简介如下:
最坏情况指标(Knuth, 1977) :这是最早出现在文献中的策略,在 Mastermind 规则下效果很好。给定一个数字,如果猜这个数字,那么接下来我的“可能集”至少会缩小多少?选取使可能集在最坏情况下最小的那个猜测。对于标准规则,这一评价指标最多需要7次猜测,平均需要 5.385 次。
平均情况指标(Irving, 1978):这是一个相当直观的指标,在各种规则变体下均有较好的效果。给定一个数字,如果猜这个数字,那么接下来我的“可能集”平均会缩小到多大?选取使可能集的预期大小最小的那个猜测。对于标准规则,这一评价指标最多需要7次猜测,平均需要 5.268 次。
预期步数指标(Neuwirth, 1982):又称“熵”指标。给定一个数字,这个指标计算如果猜测这个数字,那么接下来估计还需要多少步才能猜到答案。当然,这个步数只是一个粗略的估计,它假设每次猜测可以将可能集缩小一半(或缩小某一个常数倍k),于是估计步数就是可能集大小的对数函数,即估计步数=log(可能集中元素的个数)。对于标准规则,这一评价指标最多需要7次猜测,平均需要 5.265 次。
反馈个数指标(Kooi, 2005) :给定一个数字,这个指标计算该数字所可能带来的不同反馈的个数。反馈越多的越好。对于标准规则,这一评价指标最多需要8次猜测,平均需要 5.308 次。
此外,值得注意的是,启发式策略的效果也经常取决于所有数字的排列。不过影响一般不大。
猜数字游戏的最优策略需要由计算机用穷举法获得。其思路是,由于每次猜测的选择是有限的(因为总共的数字组合个数有限),并且我们知道一定可以在有限次数内猜出所有答案,那么计算机可以穷举所有猜法,从中找出最佳的策略。
此外,也有一些文献采用遗传算法等求解猜数字问题,在此不详述。



  • 姝f暣涓骞鐚滄暟瀛
    绛旓細瑙f硶1 A鏄3锛孊鏄2銆侫鐪嬪埌2锛屾兂鍒拌嚜宸辨槸1鎴栬3锛屾墍浠ヤ笉鐭ラ亾銆侭鐪嬪埌3锛屾兂鍒拌嚜宸辨槸2鎴栬4锛岀劧鍚嶣涔熻涓嶇煡閬撱傜劧鍚嶢璇寸煡閬撲簡锛屽亣濡侫鏄1鐨勮瘽锛孊鑲畾浼氳鑷繁鏄2鐨勩備絾鏄疊璇翠笉鐭ラ亾锛岄偅涔圓鑲畾鏄3锛岄偅涔圓纭畾浜嗚嚜宸辨槸3锛岃〃绀虹煡閬撲簡銆侭鐭ラ亾浜咥鏄3锛岄偅涔堝彧鏈塀鏄2鐨勬椂鍊欙紝A鎵嶈兘纭畾杩欎釜鐘跺喌锛孊鏄4...
  • 鐚滄暟瀛楃殑瑙f硶
    绛旓細瀵逛簬鏍囧噯瑙勫垯锛岀畝鍗曠瓥鐣ユ渶澶氶渶瑕9娆$寽娴嬶紝鑰屽钩鍧囬渶瑕5.560娆°傝繖绫荤瓥鐣ユ槸鐚滄暟瀛娓告垙鏈甯哥敤鐨勮В娉銆傚叾绠楁硶姝ラ濡備笅锛歛. 棣栧厛鐚 1234锛屽緱鍒扮涓涓弽棣堬紙xAyB锛夈俠. 浠庢墍鏈夋暟瀛椾腑锛岀瓫閫夊嚭婊¤冻宸茬煡鍙嶉鐨勬墍鏈夊彲鑳芥暟瀛楋紝绉颁箣涓衡滃彲鑳介泦鈥濄俢.
  • 2,1,2,3,2,4,5,6,b,7,8,9,2銆 b浠h〃浠涔堟暟?
    绛旓細B=8锛岄櫎寮澶存湯灏2锛屽叾瀹冧袱杈圭殑鏁板姞鍦ㄤ竴璧风瓑浜10锛1+9=10锛2+8=10銆傛眰瑙g寽鏁板瓧娓告垙鐨勭瓥鐣ラ氬父鏈変袱涓洰鏍囷紝涓鏄繚璇佸湪鐚滄祴娆℃暟闄愬埗涓嬭耽寰楁父鎴忥紝浜屾槸浣跨敤灏介噺灏戠殑鐚滄祴娆℃暟銆傜涓涓洰鏍囪拷姹傜殑鏄渶鍧忔儏鍐典笅鐨勭寽娴嬫鏁版渶灏戯紝绗簩涓洰鏍囪拷姹傜殑鏄钩鍧囨儏鍐典笅鐚滄祴娆℃暟鏈灏戯紝瀵逛簬鏌愪簺鏁扮爜鍜屾暟浣嶇殑瑙勫垯缁勫悎锛...
  • 鈫掆啇鈫戔啌鈫愨啇鈫欌啈 鍥涗綅鏁板瓧瑙e瘑?
    绛旓細銆愭垜鐨勮В娉曘戣皽搴曟槸鍥涗綅鏁板瓧锛閭d箞鎴戝氨鎯冲埌浜嗛樋鎷変集鏁板瓧甯哥敤鐨勨滄棩鈥濆瓧涔﹀啓娉曪細鎶婂叓涓澶寸鍙锋瘡涓や釜涓缁勶紝鍥涚粍鍒嗗埆涓猴細鈥溾啋鈫愨濄佲溾啈鈫撯濄鈥 鈫愨啇鈥濄佲溾啓鈫戔濄傛妸浠栦滑鍒嗗埆濉埌鈥滄棩鈥濆瓧鏍肩殑涓婁笅涓や釜绌洪噷闈細灏嗙澶存寚鍚戠殑浣嶇疆绗斿垝鍘绘帀锛屽緱鍒扮殑缁撴灉灏辨槸锛2034銆傘愯ˉ鍏呰鏄庛戜负浠涔堟瘡缁勪袱涓澶...
  • 璇烽棶杩欎釜鐚滄暟瀛娓告垙鎬庝箞鐜,鍑燗鍑燘鐨!
    绛旓細閫氬父鐢变袱涓汉鐜╋紝涓鏂瑰嚭鏁板瓧锛屼竴鏂圭寽銆傚嚭鏁板瓧鐨勪汉瑕佹兂濂戒竴涓病鏈夐噸澶嶆暟瀛楃殑4涓暟锛屼笉鑳借鐚滅殑浜虹煡閬撱傜寽鐨勪汉灏卞彲浠ュ紑濮嬬寽銆傛瘡鐚滀竴涓暟瀛楋紝鍑烘暟鑰呭氨瑕佹牴鎹繖涓暟瀛楃粰鍑哄嚑A鍑燘锛屽叾涓瑼鍓嶉潰鐨勬暟瀛楄〃绀轰綅缃纭殑鏁扮殑涓暟锛岃孊鍓嶇殑鏁板瓧琛ㄧず鏁板瓧姝g‘鑰屼綅缃笉瀵圭殑鏁扮殑涓暟銆傚姝g‘绛旀涓 5234锛岃岀寽...
  • 濂囬檷鏈夊簭銆鐚滄暟瀛
    绛旓細鏄6锛屽洜涓哄鐨勮皭闊虫槸7锛7闄嶅氨鏄6銆鐚滄暟瀛楃殑瑙f硶锛氫负浜嗕娇鐚滆皽閮芥槑纭墍瑕佺寽灏勭┒绔熸槸鍝竴绫昏皽搴曪紝灏辫鍦ㄨ皽闈㈠綋涓娇鐢ㄨ皽鐩紝瑙勫畾鍑鸿皽搴曠殑澶ц嚧鑼冨洿銆傚瓧璋滆皽闈㈢粨鏉熺殑鏃跺欙紝寰寰浼氱敤鎷彿璇存槑"鎵撳瓧"鎴栬"鐚滃瓧"锛屼互渚夸汉浠槑鐧借繖鏉¤皽璇槸鐢ㄦ潵鐚滃瓧鐨勩傚湪瀛楄皽涓紝璋滅洰鐨勫彟涓鐗规畩鍔熺敤鏄潵鍖哄垎涓闈竴搴曡皽鍜屼竴闈㈠...
  • 鐚滄暟瀛闂
    绛旓細鐞嗘兂涓涓嬶級锛岃繖鏍981灏辨壘鍑烘潵浜嗭紝涔嬪悗鐢ㄨ繖3涓暟甯﹀墿涓嬬殑23锛屽嵆鍙 娉ㄦ剰姣忔杈撳叆鏃惰瀵鏁板瓧浣嶇疆锛屽鏋滄湁B鍑虹幇锛屾敞鎰忚皟鎹紝鍥犱负娆℃暟寰堝皯锛屾病鏈轰細缁欎綘澶氳瘯 鎴戝拰鍚屽姣旇繖涓紝鐜╁埌100鑳滐紙鎹㈢數姹狅紝璁板綍娌′簡锝烇綖锛夛紝鐔熺粌鍚庯紝闄ら潪纰颁笂鏋佷釜鍒潪甯搁毦鐨勬暟锛岀敤0123,4567,89+xx甯︿笉鍑烘潵鐨勶紝鍏朵粬閮借兘椤哄埄杩囧叧 ...
  • 鐚滄暟瀛楃殑瑙f硶琛
    绛旓細绠楁硶 骞冲潎娆℃暟 1娆 2娆 3娆 4娆 5娆 6娆 7娆 8娆 9娆 绠鍗曠瓥鐣 5.765 1 4 25 108 305 602 196 49 6 鏈鍧忔儏鍐垫寚鏍 4.476 1 6 62 533 694 - - - - 骞冲潎鎯呭喌鎸囨爣 4.395 1 10 54 645 583 3 - - - 棰勬湡...
  • 绉嶈眴褰鐚滄暟瀛
    绛旓細4 绉嶈眴褰掓寚锛氣滆眴鈥濅负鈥滅鈥濃滃綊鈥濅负鈥滃幓鎺夆濃滅鈥濆幓鎺夆滅鈥濆墿涓鈥滀腑鈥濆瓧锛屸滀腑鈥濈殑绗斿垝涓衡4鈥濆垝銆
  • 鏃犳槑鐏墦涓鏁板瓧
    绛旓細鐚滄暟瀛楃殑鏂规硶锛1銆侀『鎺ㄦ硶锛氭牴鎹皽闈㈢殑鎻忚堪锛屾寜鐓т粠灏忓埌澶ф垨浠庡ぇ鍒板皬鐨勯『搴忥紝閫愭鎺ㄦ祴鍑虹瓟妗堛備緥濡傦紝璋滈潰1銆2銆3銆4銆5銆6銆7銆8銆9銆10鎵撲竴鏁板鍚嶈瘝锛岄氳繃椤烘帹娉曞彲浠ュ緱鍒扮瓟妗堟槸姝f暟銆2銆侀嗘帹娉曪細涓庨『鎺ㄦ硶鐩稿弽锛屾牴鎹皽闈㈢殑鎻忚堪锛屼粠缁撴灉鍙嶆帹鍥炲幓锛岄愭缂╁皬绛旀鑼冨洿锛屾渶缁堝緱鍑烘纭瓟妗堛備緥濡傦紝璋滈潰...
  • 扩展阅读:打三个准确的数字 ... 猜数字的诀窍 ... 打一准确数字 ... 猜数字1-100技巧 ... 猜数字最快方法 ... 1-9数字谜题 ... 猜打一数字几 ... 正确打一个数字 ... 猜数字5次机会怎么稳赢 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网