n个球找一个次品(分治,递归)

介绍了一个使用天平找出一组球中唯一一个次品的方法。通过不断将球分成两组进行对比,逐步缩小次品范围,直至找到次品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 n个球找一个次品

问题描述:给定n个球,其中1个球为次品。次品从外表上看与正常球一样,但重量有区别。它可能比正常球重,也可能比正常球轻。现在给你一个天平,我们的问题是,需要称几次才能将次品甄别出来?

这个问题的解答思路十分简单:就是将次品所在的范围不断地缩小,直到只有一个球为止。例如,先将所有的球分解为两个相等的部分(如果n为奇数,则无法分解为相等的部分,但本思路仍然适用),将其置于天平的两端,此时必然一端重,另一端轻。问题是我们并不知道次品是重还是轻,所以我们需要分别对每部分的n/2个球在进行一次上述这样的测试。如果平衡,则这部分的n/2个球都是正品,即次品在另外的n/2个球里,否则,次品就在这n/2个球里,这样我们就将寻找次品的范围缩小了一半。其实第一次称秤并不需要(n/2个球对n/2个球)。

Date: 2014-09-28T13:13+0800

Author: kirchhoff

Org version 7.9.3f withEmacs version 24

Validate XHTML 1.0
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值