逻辑思维题

⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。

在计算机面试中,偶尔会遇到逻辑类题目。由于题目花样百出,准备难度较大,题海战术可能不是推荐的策略。同时,我认为回答问题的思路比答案本身更加重要。在这个专栏里,我将精选一些经典的逻辑思维题,希望能帮助你找到解题思路 / 技巧。

本文是逻辑思维系列的第 3 篇文章,完整文章目录请移步到文章末尾~

前言

大家好,我是小彭。

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


  1. 问题描述

给定一台天平,至少要几个砝码,可以称出 1g ~ 40g 这 40 个重量?

这个问题等同于 “德·梅齐利亚克砝码”问题:一位商人有一个 40 磅的砝码,由于跌落在地而碎成4 块。后来,称得每块碎片的重量都是整磅数,而且可以用这 4 块来称从 1 ~ 40 磅之间的任意整数磅的重物。(引用自法国数学家 G.B.德·梅齐里亚克)问这 4 块砝码碎片各重多少?


2.解题关键

砝码的和与差: 假设有 m 和 n 两个砝码(m > n),除了可以称出 m + n 的重量外,还可以称出 m - n 的重量。


  1. 题解

令 AxA_xAx 表示第 xxx 块砝码的重量。

  • 第 1 块砝码 A1A_1A1:为了称取重量 1g ,必须拥有一枚重量为 1g 的砝码,即 A1A_1A1 = 1。目前可以称 {1, 2, 3}。
  • 第 2 块砝码 A2A_2A2:砝码组 [1,A2][1, A2][1,A2],可以称出 {1,A2−1,A2,A2+1}{1, A_2 - 1, A_2, A_2 + 1}{1,A2−1,A2,A2+1}。为了称取重量 2g,显然有 A2A_2A2 - 1 = 2,即 A2A_2A2 = 3。目前可以称 {1, 2, 3, 4}。
  • 第 3 块砝码 A3A_3A3:砝码组 [1,3,A3][1, 3, A3][1,3,A3],可以称出 {1,2,3,4,A3−4,A3−3,A3−2,A3−1,A3,A3+1,A3+2,A3+3,A3+4}{1, 2, 3, 4, A_3 - 4, A_3 - 3, A_3 - 2, A_3 - 1, A_3, A_3 + 1, A_3 + 2, A_3 + 3, A_3 + 4}{1,2,3,4,A3−4,A3−3,A3−2,A3−1,A3,A3+1,A3+2,A3+3,A3+4}。为了称取重量 5g,显然有 A3A_3A3 - 4 = 5,即 A3A_3A3 = 9。目前可以称 {1, 2, 3, 4, …, 13}。
  • 第 4 块砝码:同理,第 4 块砝码 A4A_4A4 = 27,可以称出 {1,2,3,4,…,40}{1, 2, 3, 4,…, 40}{1,2,3,4,…,40}。总共需要 4 个砝码。

参考资料


推荐阅读

逻辑思维系列往期回顾:

⭐️ 永远相信美好的事情即将发生,欢迎加入小彭的 Android 交流社群~

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%