下面说的这个问题可能大家都看到过,它是这么描述的:

  现在有n(n>=2)个球,n个球外观一模一样,但是重量有区别,其中有且仅有一个球的重量比其它n-1个球要重,现在有一个天平,天平是完好无损的,问最少需要称多少次才能确定哪个球的重量较重?

  初一看这个问题,感觉有点复杂,不知道从何入手。一般情况下,解决类似的问题需要简化问题,然后从中发现规律,从而解决整个问题。可以先假设有2个球,那么称一次就可以知道哪个球重;当有3个球时,也可以通过一次称量就可以确定哪个球重,因为假如放在天平上的球一样重,那么剩下的那个球必定是重球,否则天平重的那端就是重球;当有4个球时,一次称重时无法确定的。。即当球的个数大于3时,是无通过一次称重确定的。下面来分析大于3的情况:

  4个球时,可以称2次确定,分为2组(2,2),先取2个球,天平一端一个,重的那端为重球;若天平平衡,称剩下的一组即可;

  5个球时,也可以2次确定,分为2组(2,3),先取2个球,天平一端一个,重的那端为重球;若天平平衡,剩下的3个球一次称重就可以确定;

  6个球时,也可以两次确定,分为2组(3,3),天平每端放3个球,然后再对重的那端的3个球进行称重;

  7个球时,也可以两次确定,分为3组(2,2,3),先在天平每端放2个球,然后对重的那端再称重;若天平平衡,剩下的3个球一次称重;

  8个球时,也可以2次确定,分为(3,3,2),道理同上;

  9个球时,也可以2次确定,分为(3,3,3),道理同上;

  。。。。

  显然,当有27个球时,可以3次确定,分为(9,9,9),先确定重的那个球在哪9个球里,然后再确定重的那个球在哪3个球里,然后再需1次称量即可。

  从上面的分析可以,发现要想最少次数的称量,必须把球分组,并且组数不大于3,而且一次称重最多能从3个球中确定哪个球中,2次称重最多可以从9个球中确定哪个球重,3次称重最多可以从27个球中确定哪个球重。。m次称重最多可以从3^m个球中确定哪个球重。

  因此,当有n个球时,显然最少需要n^(1/3)次才能确定,这里需要特别说明一下,当n^(1/3)为整数时,最少需要n^(1/3)次;否则最少需要[n^(1/3)]+1次。

称球问题(zt)的更多相关文章

  1. Atitit 《控制论原理与概论attilax总结

    Atitit <控制论原理与概论attilax总结 <控制论> 奠基之作,出自创始人维纳.虽然内容权威,但我认为带有相当强烈的个人色彩,且门槛较高,不适合入门.深入研究控制论必看书籍 ...

  2. [转] ACM中国国家集训队论文集目录(1999-2009)

    国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98试题PICTURE谈起>来煜坤:<把握本质,灵活运用——动态规划的深入探讨>齐鑫:<搜索方法中的 ...

  3. 13 Balls Problem

    今天讨论的是称球问题. No.3 13 balls problem You are given 13 balls. The odd ball may be either heavier or ligh ...

  4. Atitit 三论”(系统论、控制论、信息论

    Atitit 三论"(系统论.控制论.信息论 1. 系统论的创始人是美籍奥地利生物学家贝塔朗菲1 2. 信息论是由美国数学家香农创立的,2 3. 什么是控制论? 2 1. 系统论的创始人是美 ...

  5. ACM/IOI 历年国家集训队论文集和论文算法分类整理

    国家集训队1999论文集 陈宏:<数据结构的选择与算法效率--从IOI98试题PICTURE谈起> 来煜坤:<把握本质,灵活运用--动态规划的深入探讨> 齐鑫:<搜索方法 ...

  6. PHP树生成迷宫及A*自己主动寻路算法

    PHP树生成迷宫及A*自己主动寻路算法 迷宫算法是採用树的深度遍历原理.这样生成的迷宫相当的细,并且死胡同数量相对较少! 随意两点之间都存在唯一的一条通路. 至于A*寻路算法是最大众化的一全自己主动寻 ...

  7. ACM/IOI 国家队集训队论文集锦

    转自:https://blog.csdn.net/txl199106/article/details/49227067 国家集训队1999论文集 陈宏:<数据结构的选择与算法效率——从IOI98 ...

  8. ZT 二分插入排序也称折半插入排序

    二分插入排序也称折半插入排序,基本思想是:设数列[0....n]分为两部分一部分是[0...i]为有序序列,另一部分是[i+1.....n]为无序序列,从无序序列中取一个数 x ,利用二分查找算法找到 ...

  9. [bzoj4874]筐子放球

    来自FallDream的博客,未经允许,请勿转载,谢谢. 小N最近在研究NP完全问题,小O看小N研究得热火朝天,便给他出了一道这样的题目: 有 n 个球,用整数 1 到 n 编号.还有 m 个筐子,用 ...

随机推荐

  1. 【转】VC6.0附带小工具软件一览

    )ActiveX Control Test Container称为"ActiveX 控件测试容器",顾名思义,此工具的主要功能就是测试ActiveX 控件,可以通过改变Active ...

  2. YARN应用场景、原理与资源调度

    1.Hadoop YARN产生背景 源于MapReduce1.0 运维成本 如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模式通常需要少数管理员即可完成 ...

  3. HDU-4720 Naive and Silly Muggles 圆的外心

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4720 先两两点之间枚举,如果不能找的最小的圆,那么求外心即可.. //STATUS:C++_AC_0M ...

  4. coco2d-x 纹理研究

    转自:http://blog.csdn.net/qq51931373/article/details/9119161 1.通常情况下用PVR格式的文件来进行图片显示的时候,在运行速度和内存消耗方面都要 ...

  5. thymeleaf中的th:each用法

    一.th:eath迭代集合用法: <table> <thead> <tr> <th>序号</th> <th>用户名</th ...

  6. C#经典面试题 C# 中 Struct 与 Class 的区别,以及两者的适用场合

    在一家公司面试时,第一个问题就是问到这个 转载 文章 http://www.cnblogs.com/waitrabbit/archive/2008/05/18/1202064.html  来解释此问题 ...

  7. 使用friso中文分词注意

    friso是使用c语言开发的一款中文分词器,使用流行的mmseg算法实现.完全基于模块化设计和实现,可以很方便的植入到其他程序中,例如:MySQL,PHP等.目前只支持UTF-8 编码. 源码无需修改 ...

  8. poj 3635 Full Tank? ( bfs+dp思想 )

    Full Tank? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5857   Accepted: 1920 Descri ...

  9. C++ API设计

    <C++ API设计> 基本信息 作者: (美)Martin Reddy    译者: 刘晓娜 臧秀涛 林健 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:97871153 ...

  10. Unity中2D和UGUI图集的理解与使用

    图集 什么是图集? 在使用3D技术开发2D游戏或制作UI时(即使用GPU绘制),都会使用到图集,而使用CPU渲染的2D游戏和UI则不存在图集这个概念(比如Flash的原生显示列表),那么什么是图集呢? ...