zoukankan      html  css  js  c++  java
  • 近几年难得一见的一道好推理题

    要改变世界的程序猿,是用代码逻辑来解决各种问题,编程就是与各种问题斗智斗勇的过程,没有严谨的推理能力,是很难通过九九八十一难取得真经的。这是本程序猿近两三年来看到的最好的一道推理题。

    这题的最大难点在于无从下手,即无法直接确定任何一道题的答案。

    前提条件:
    每道题都有且只有一个正确答案。
    第8题“不相邻”包括“不是同一个字母”

    你要想增加点趣味性,建议你往下看前,先尝试做下。

    解题过程说明:
    阿拉伯数字代表题号,如,3代表第3题。

    解题过程:
    因为无法直接确定任何一题的答案,所以必须先作尝试。
    因为6能同时确定三道题的答案相同,所以先从6下手作尝试。
    因为6若选D,则589相同,则5有两个答案AC,所以6排除D。

    因为6若选B,则168相同,所以1和8都是B。
    因为8是B,根据8,则5是D。
    因为5是D,根据2,则2是B。
    因为26是B,根据3,则3可能是A或D。若3是D,根据3,则362都是B,矛盾。所以3是A。
    因为3是A,根据3,4是B。
    因为24是B,根据4,7是B。
    因为5是D,根据5,7是D,与7是B矛盾,所以6排除B。

    因为6若选A,则248相同。
    因为24相同,根据3,则3可能是A或B。若3是A,根据3,则624相同,因为6是A,则24都是A,所以3624都是A,3无解。所以3是B。
    因为3是B,根据3,324相同,所以248都是B。
    因为2是B,根据2,所以5是D。
    因为24是B,根据4,7是B。
    因为5是D,根据5,7是D,与7是B矛盾,所以6排除A。

    因为6若选C,则3810相同。以下对3810的几种情况分别尝试。

    3810若选D,
    因为3是D,根据3,则6是D,与6是C矛盾。所以6若是C,则3810排除D。

    3810若选C,
    因为3是C,根据3,则4是C。
    因为46是C,根据4,则10不可能是C,与10是C矛盾。所以6若是C,则3810排除C。

    3810若选B,
    因为3是B,根据3,则24是B。
    因为2是B,根据2,则5是D。
    因为24是B,根据4,则7是B。
    因为5是D,根据5,则7是D,与7是B矛盾,所以6若是C,则3810排除B。

    3810若选A,
    因为3是A,6是C,根据3,则24是C。
    因为2是C,根据2,则5是A。
    因为8是A,5是A,2是C,根据8,则1是(A和C中间的)B。
    因为8是A,1是B,根据8,则7是D。
    因为1是B,6是C,5是A,10是A,根据9,则9是B。
    到此,每道题都有了答案,1B,2C,3A,4C,5A,6C,7D,8A,9B,10A。

    因为其它的“路”都不通,所以这也是“前提条件”下的唯一的答案。

  • 相关阅读:
    条目二十八《正确理解由reverse_iterator的base()成员函数所产生的iterator的用法》
    条目二十六《iterator优先于const_iterator、reverse_iterator以及const_reverse_iterator》
    ubuntu16.04 能启动mysql服务
    《[MySQL技术内幕:SQL编程》读书笔记
    条目二十五《熟悉非标准的散列容器》
    稳健的漫步~~~
    条目二十四《当效率至关重要时,请在map::operator[]与map::insert之间谨慎做出选择》
    条目二十三《考虑用排序的vector替代关联容器》
    条目二十一《总是让比较函数在等值情况下返回false》
    条目二十二《切勿修改set或multiset的键》
  • 原文地址:https://www.cnblogs.com/BillySir/p/8543610.html
Copyright © 2011-2022 走看看