程序员必知(四):找次品

在一堆硬币中寻找一个较轻的次品,传统的二分法需要log以2为底n的对数次,但其实利用天平的三种状态可以更高效。这种方法在限制天平只能区分两种状态的情况下不适用,但通过该策略,最大能处理3的n次方个硬币。这是一个关于优化找次品问题的讨论。
部署运行你感兴趣的模型镜像
用天平找次品问题

具体问题是有一堆硬币(n个),其中有一个较轻的是次品,用天平称,至少称多少次才能找出此次品?

很多人直接想到的就是二分法,先均分为2份,然后称,次品一定在较轻的一边,然后继续二分,直到找到那个次品,所以需要log以2为底n的对数次。其实还有更好的方法,此方法的局限在于认为天平一次只能分出来两种状态。其实是可以分成三种状态的。


方法如下:

每次把待测物品分成三组,称其中两组,这时候我们就可以分辨出次品在哪一组中。如果天平平衡,则次品在没有称的那一组中,否则,次品在较轻的一组中。此时物品有n/3个, 然后继续这样称, 可以看到,每次都会将原物品数删去2/3,所以总的此时是log以3为底n的对数次

关系为:
物品数目n                                         次数m
     2-3                                                    1
     4-9                                                    2
   10-27                                                  3
   28-81                                                  4 
   82-243                                                5

其实这道题还可以进行变体,如有一堆硬币(n个),其中有一个较轻的是次品,如果要求用天平称m次就能将此次品找到,求最大的n

同理可知,答案是3的n次方

原文:http://blog.csdn.net/hongchangfirst/article/details/17249253

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


程序员必知(一):CSRF跨站请求伪造

程序员必知(二):位图(bitmap)

程序员必知(三):一分钟知道URI编码(encodeURI)

程序员必知(四):找次品

程序员必知(五):卡特兰数

您可能感兴趣的与本文相关的镜像

AutoGPT

AutoGPT

AI应用

AutoGPT于2023年3月30日由游戏公司Significant Gravitas Ltd.的创始人Toran Bruce Richards发布,AutoGPT是一个AI agent(智能体),也是开源的应用程序,结合了GPT-4和GPT-3.5技术,给定自然语言的目标,它将尝试通过将其分解成子任务,并在自动循环中使用互联网和其他工具来实现这一目标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值