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

  现在有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. [GRYZ2015]INCR

    题目描述 数列 A1,A2,...,AN,修改最少的数字,使得数列严格单调递增. 输入格式 第 1 行,1 个整数 N 第 2 行,N 个整数 A1,A2,...,AN 输出格式 1 个整数,表示最少 ...

  2. document.getElementsByClassName方法的重写(OVERRIDE)

    众所周知,对于IE8以下的浏览器(IE8居然是WIN7预装的)没有document.getElementsByClassName,网上也有很多重写的方法,以下是本人在项目中所使用的方法 documen ...

  3. hadoop测试环境主配置简例

    1,mapred-site.xml 此配置文件主要是针对mapreduce的配置文件,配置的是jobtracker的地址和端口; <configuration> <property& ...

  4. spring注解使用

    一.各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource) @Autowired可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作.@Autowired的标注位 ...

  5. Umbraco官方技术文档 中文翻译

    Umbraco 官方技术文档中文翻译 http://blog.csdn.net/u014183619/article/details/51919973 http://www.cnblogs.com/m ...

  6. POJ 3321 Apple Tree (树状数组+dfs序)

    题目链接:http://poj.org/problem?id=3321 给你n个点,n-1条边,1为根节点.给你m条操作,C操作是将x点变反(1变0,0变1),Q操作是询问x节点以及它子树的值之和.初 ...

  7. JMS开发(二):深入PTP,Pub-Sub两种模式

    1.PTP模型 PTP(Point-to-Point)模型是基于队列(Queue)的,对于PTP消息模型而言,它的消息目的是一个消息队列(Queue),消息生产者每次发送消息总是把消息送入消息队列中, ...

  8. CentOS服务器配置发送邮件服务

    CentOS服务器配置发送邮件服务 lsb_release -a 查看linux系统版本 在CentOS6以上版本自带mailx版本12.4 rpm -qa | grep mailx 查看系统自带的m ...

  9. python list(列表)和tuple(元组)

    200 ? "200px" : this.width)!important;} --> 介绍 python中存在两种有序的类型列表,分别是list(列表)和tuple(元组) ...

  10. javascript:history.go(-1);

    history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录.它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个. 这个方法的参 ...