程序员必知(四):找次品
来源:互联网 发布:mac os 分辨率设置 编辑:程序博客网 时间:2024/05/01 02:17
用天平找次品问题
关系为:
物品数目n 次数m
2-3 1
4-9 2
10-27 3
28-81 4
82-243 5
具体问题是有一堆硬币(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)
程序员必知(四):找次品
程序员必知(五):卡特兰数
0 0
- 程序员必知(四):找次品
- [从头学数学] 第89节 数学广角--找次品
- 程序员必看的书(四)
- 程序员必知
- 程序员必知
- [IOS]编程必知-四
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)归并排序,基数排序(java实现)
- 程序员必知的8大排序(java实现)(四)(基数排序)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员必知的8大排序(四)-------归并排序,基数排序(java实现)
- 程序员之英语必知
- 程序员必知生活经验
- ofbiz-kendoui-grid
- Android开发笔记---Manifest的android:windowSoftInputMode属性说明
- 数据结构 二叉树的非递归遍历
- 错误 是否保存对以下各项的更改 devenv.sin
- 字符串哈希算法
- 程序员必知(四):找次品
- 汇编程序的多模块化
- 合泰 HT66F30 定时器初始化
- inux 学习书目推荐
- 数据结构 二叉树的线索存储
- 面积
- java类中打印信息乱码?
- 第16周项目2-指来指去(2)
- 邮票问题