关于算法:我知道你不知道我到底知不知道

4次阅读

共计 1333 个字符,预计需要花费 4 分钟才能阅读完成。

请点赞关注,你的反对对我意义重大。

🔥 Hi,我是小彭。本文已收录到 GitHub · AndroidFamily 中。这里有 Android 进阶成长常识体系,有气味相投的敌人,关注公众号 [彭旭锐] 带你建设外围竞争力。

前言

大家好,我是小彭。

在计算机面试中,逻辑类题目是规模以上互联网公司的必考题。因为题目花样百出,筹备难度较大,题海战术可能不是举荐的做法。在这个系列里,我将精选十道十分经典的逻辑题,心愿能帮忙你找到解题思路 / 技巧。如果能帮上忙,请务必点赞加关注,这真的对我十分重要。


系列文章:

  • 我晓得你不晓得,我到底知不知道
  • 至多要几个砝码,能够称出 1g ~ 40g 分量
  • 舞会上有多少顶黑帽?
  • 25 匹马 5 条赛道,最快须要几轮求出前 3 名?

1. 题目形容

A 与 B 好奇问 C 的年龄,爱卖关子的 C 给出了以下 11 个数字,C 的年龄就是其中的一个:$35、36、38、42、45、46、51、55、57、61、62$,并且别离把年龄的十位数通知给 A,把个位数通知给 B。此时,A 和 B 产生以下对话:

A:我不晓得 C 的年龄,我晓得你不晓得。

B:本来我不晓得的,当初我晓得了。

A:当初我也晓得了。

那么,请问 C 的年龄是?


2. 解题要害

  • 1、我晓得你不晓得的含意: 这句话的含意是: 依据我的现有信息,能够晓得你未获得命题的充分条件 。更艰深的说法是,我不晓得你当初是什么状况,反正肯定不是那个能够推断出后果的状态;
  • 2、“唯一性”隐含的充分条件: 有 36、46、57 这三个数,假如已知指标数的个位数是 7,那么很显著这个数就是 57 了(因为只有惟一个数字个位是 7)。

3. 题解

  • 首先咱们察看 11 个数字: $(35、36、38、42、45、46、51、55、57、61、62)$

十位数有 3、4、5、6 这几种可能,都会匹配不惟一个数字。

个位数有 1、2、5、6、7、8 这几种可能,其中 1、2、5、6 会匹配不惟一个数字,而 7、8 会别离匹配 57、38 两个数字。

  • A:我不晓得 C 的年龄,我晓得你不晓得。

首先,A 说“不晓得 C 的年龄”,阐明十位数是不惟一的。因为 十位数 3、4、5、6 都对应多个数,目前无奈排除任何数字;

随后 A 又说“我晓得你不晓得”,in other words,“依据我的现有信息,能够晓得你未获得命题的充分条件”,in other words,“我晓得你手上的个位数肯定不是 7 或 8”。

为什么 A 敢断言:“你手上的个位数肯定不是 7 和 8”呢?肯定是 A 手中的十位数不是 3,也不是 5 的时候。只有这样能力确定最终答案不是 3_ 或 5_,也就不可能是 38、57 两个数字。

  • 此时,察看剩下以下数字: $(42、45、46、61、62)$

个位数有 1、2、5、6 这几种可能,其中 个位数 2 会匹配多个数字,而 个位数 1、5、6 会别离匹配 61、45、46 三个数字。

  • B:本来我不晓得的,当初我晓得了。

此时,B 说“我晓得了”,阐明达到唯一性充分条件,那么年龄个位数肯定不是 2

  • 此时,察看剩下以下数字: $(61、45、46)$

十位数有 4_ 和 6_ 这两种可能,其中 十位数 4 会匹配 2 个数字,而 十位数 6 会惟一匹配 61 这个数字。

  • A:当初我也晓得了。

此时,A 说“我也晓得了”,阐明达到唯一性充分条件,那么年龄是 61。

我是小彭,带你构建 Android 常识体系。技术和职场问题,请关注公众号 [彭旭锐] 私信我发问。

正文完
 0