逻辑思维题 #3 至少要几个砝码,可以称出 1g ~ 40g 重量

1,579 阅读3分钟

⭐️ 本文已收录到 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 的重量。


3. 题解

令 AxA_x 表示第 xx 块砝码的重量。

  • 第 1 块砝码 A1A_1:为了称取重量 1g ,必须拥有一枚重量为 1g 的砝码,即 A1A_1 = 1。目前可以称 {1, 2, 3}。
  • 第 2 块砝码 A2A_2:砝码组 [1,A2][1, A2],可以称出 {1,A21,A2,A2+1}\{1, A_2 - 1, A_2, A_2 + 1\}。为了称取重量 2g,显然有 A2A_2 - 1 = 2,即 A2A_2 = 3。目前可以称 {1, 2, 3, 4}。
  • 第 3 块砝码 A3A_3:砝码组 [1,3,A3][1, 3, A3],可以称出 {1,2,3,4,A34,A33,A32,A31,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\}。为了称取重量 5g,显然有 A3A_3 - 4 = 5,即 A3A_3 = 9。目前可以称 {1, 2, 3, 4, ..., 13}。
  • 第 4 块砝码:同理,第 4 块砝码 A4A_4 = 27,可以称出 {1,2,3,4,...,40}\{1, 2, 3, 4,..., 40\}。总共需要 4 个砝码。

参考资料


推荐阅读

逻辑思维系列往期回顾:

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