有16个一元硬币,其中有个是假的,设计个最简单的办法找出那个假的,最好用到折半查找法。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有16个一元硬币,其中有个是假的,设计个最简单的办法找出那个假的,最好用到折半查找法。相关的知识,希望对你有一定的参考价值。
我们现在正在学习数据结构的折半查找算法,希望用到这个算法解决这个问题,老师也没说这个假硬币是重些还是轻些。
如果没有说轻重的话应该分成四组,每组4个硬币第一次:将其中一组放在天平一边,另选一组放在天平另一边
第二次:固定第一组,选择第三组放在天平另一边;
这样就可以得知哪组中有假硬币了(不分轻重,但能显示出这一组与其他组重量不一样);
确定这一组后,把4个硬币分成4组,每组一个;再用上述方法测两次就可以确定哪个是假的了;
一共测4次。 参考技术A 当然是有区别了,我们假设假的重量轻。
分为两份,放到天平两边,找出轻的一边8
分为两份,找出轻的一边4
分为两份,找出轻的一边2
分为两份,找出轻的就是假的。 参考技术B 简单,1、从16硬币中选8个,放天平两边,一边四个。
2、(1)若天平平衡则将未放上天平的四个放在天平两边,一边两个。
(2)若天平不平衡,则未放上的为真,排除。天平上依然有四个。
3、将天平两边的硬币一边拿掉一个,看天平是否平衡。
4、(1)若天平平衡则两边都为真,将一边的真硬币拿掉,依次换上步骤3拿掉的两枚,平衡为真,不平衡为假。
(2)若天平不平衡则步骤3拿掉的硬币为真。将天平一边的一枚硬币拿掉,依次放上步骤3的两枚硬币,如两枚都平衡,则拿掉为假;如一平衡,一不平衡则不平衡的为假。
参考资料:如果您的回答是从其他地方引用,请表明出处
参考技术C 老师也没说这个假硬币是重些还是轻些知道重量和真硬币比一样就可以了,管它是重还是轻呢
先把16个硬币分成四份(每份四枚硬币),分别测重量,其中有一份重量和另外三份不一样,那就说明假币在那一份中;其余的三份(共有12枚硬币)全部是真的。把含有假币的那一份中的每一枚与真币作比较,很快就能找出假币。 参考技术D 如果不要求步骤的次数就好说一些了。
首先要1个天平秤。每边放8枚硬币。当然 其中一头存在一个假币,不过不知道是轻还是重。 没关系,从现在开始,每边拿掉一个,观察天平变化,一旦天平平衡了,就说明假币被取走了。就在刚刚拿掉的那两个硬币之中。现在拿掉其他的硬币,把有假币的那两个硬币的任意一个放回天平。
现在只需要做一步 就完成了,拿一个真币放到天平的另一边,如果平衡,那刚刚没放上去的就是假币,如果天平依然倾斜,那天平上的那个就是假币。
以上是关于有16个一元硬币,其中有个是假的,设计个最简单的办法找出那个假的,最好用到折半查找法。的主要内容,如果未能解决你的问题,请参考以下文章