Finding the two different coins
问题是:
你有n个硬币,其中n=2^k表示整数k,这样n?两个硬币是一样的重量和两枚硬币比其他硬币重。两枚较重的硬币可能重量相同,或者它们的重量可能不同。你有天平:你可以放任意数量的硬币在天平的每一边,它会告诉你,如果两边的重量相同,哪一边更轻,如果它们不相同。概述一种使用O(log n)称重法寻找两个较重硬币的算法。
如果只有一枚硬币不同于其他硬币,我知道答案。我也发现了类似的问题,不同的硬币在哪里更重。
如果给N个硬币,其中一些更重,找到重硬币的数量?
有什么帮助吗?
假设你把硬币分成两堆2K-1硬币。
- 如果这两堆硬币的重量不相同,那么第一次称重的两堆硬币必须各有一枚重硬币(两个硬币的重量不同)。在每堆纸上使用"一个较重的硬币溶液"。
- 如果这两堆硬币的重量相同,那么两个重的硬币必须放在一堆更重的2K-1硬币中。再回到那堆。(稍后我们将了解两枚重硬币的重量是否不同)。
现在,为了证明称重的数量。
假设我们从不使用"一个重硬币解决方案",这个设置将在最坏的情况下需要两个称重来将搜索空间减半。因此,这里的称重次数为
请注意,我们最多使用"一个较重的硬币解决方案"两次。因此,上述两个步骤中的松散上界是