关于算法:至少要几个砝码可以称出-1g-40g-重量

32次阅读

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

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

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

前言

大家好,我是小彭。

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


系列文章:

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

1. 问题形容

给定一台天平,至多要几个砝码,能够称出 1g ~ 40g 这 40 个分量?

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


2. 解题要害

砝码的和与差: 假如有 m 和 n 两个砝码(m > n),除了能够称出 m + n 的分量外,还能够称出 m – n 的分量。


3. 题解

令 $A_x$ 示意第 $x$ 块砝码的分量。

  • 第 1 块砝码 $A_1$:为了称取分量 1g,必须领有一枚分量为 1g 的砝码,即 $A_1$ = 1。目前能够称 {1, 2, 3}。
  • 第 2 块砝码 $A_2$:砝码组 $[1, A2]$,能够称出 $\{1, A_2 – 1, A_2, A_2 + 1\}$。为了称取分量 2g,显然有 $A_2$ – 1 = 2,即 $A_2$ = 3。目前能够称 {1, 2, 3, 4}。
  • 第 3 块砝码 $A_3$:砝码组 $[1, 3, A3]$,能够称出 $\{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,显然有 $A_3$ – 4 = 5,即 $A_3$ = 9。目前能够称 {1, 2, 3, 4, …, 13}。
  • 第 4 块砝码:同理,第 4 块砝码 $A_4$ = 27,能够称出 $\{1, 2, 3, 4,…, 40\}$。总共须要 4 个砝码。

参考资料

  • 《托付,面试别再问我三进制了!!!》—— 沈剑 著
  • 《世界上最完满的砝码组合 — 神秘的“3”重现江湖!》—— 隔壁家的二傻子 著

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

正文完
 0