有趣的问题--12 coins problem
问题描述:
12个金币,其中有一枚是假的,重量与众不同。
现有一架天平,需要你用最少的次数来称重,然后告诉我:
(1)哪个金币是假的
(2)它到底是更轻还是更重。
(注:此处为3次)
{解题说明:
第一步: 一边4个,如果天平是平的,假币就在剩下的4个中,否则就在天平上的8个中。现在分情况1:在4个中: 之间再在天平上一边1个,这样不管哪种情况待排除的就剩下2个了,拿着两个和标准的(也就是你已经排除过的某个)比一下就好了情况
2:天平上的8个中,这里有一个要点:重的球每次称那一侧都会重,轻的球每次称那一侧都会轻,所以有时轻有时重的肯定是普通的给这8个球编个号,重的一组叫1 2 3 4,轻的一组叫5 6 7 8,还有4个正常的球都叫x好了。
注意这里我得到了两种解决方法而且不排除会有第三种第四种或者更多:
方法1:
1.天平左边摆上1XXX ,右边摆上2348
2.1如果出现了 左边依旧重于右边的话,我们可以知道1和8是有问题,但是不知道假币是更轻还是更重(因为234中不存在能对结果产生影响的影响因子,XXX都为正常的)
2.2如果出现了 两侧一样 重的话,我们可以得出 出问题的在于(5,6,7),由情况2的已知条件可以知道出问题的假币应该是更轻,很简单可以通过一次称量在5,6,7中找到这枚假币!——ex:5左6右,斜了的话轻为假,平的话7为假。
(方法1这段是我个人描述)
方法2:
我们左边摆1 2 5, 右边摆3 6 X,剩下4 7 8不放上来,假设天平平了,那么在4 7 8中,称一下78即可,平了表示4是重了的,不平谁轻就是谁现在看天平不平的情况:假如1 2 5 重, 那么候选的球是1 2 6,和上面类似,称12即可。假如1 2 5 轻,那么候选的球是3 5,两个球随便和标准球比一下好了
解题完毕}
在这之后我通过搜索获取了一些信息,关于这个问题国外有人发过paper呢,用信息论的知识进行了解释并且做了推广。
后来我去图书馆借了《信息论基础》——美国两位作者合著的书籍,翻阅了一下,发现信息论跟我想象的还是有很大不同的,我本希望能通过信息论来帮助自己掌握一些哲学上的原理来指导生活(好吧确实是这样~~~~)可此时发现信息论涉及到非常多的数学原理,对数学的要求较高,目前更多的是应用于编码工作,这对于通信工程的人还是很有帮助的。一些阅读之后很快证明自己不感兴趣。
最后:
如果对于 12coins 问题怀有兴趣并且希望能得到一些启发的话,我推荐这篇文章,相信一定能开拓你的思维:
类似的问题:N 个乒乓球中有一个和其他的质量不同,用天平最少几次一定能称出来? 知乎讨论
就酱 :)
有趣的问题--12 coins problem的更多相关文章
- 实验12:Problem I: 成绩排序
Home Web Board ProblemSet Standing Status Statistics Problem I: 成绩排序 Problem I: 成绩排序 Time Limit: 1 ...
- 实验12:Problem H: 整型数组运算符重载
Home Web Board ProblemSet Standing Status Statistics Problem H: 整型数组运算符重载 Problem H: 整型数组运算符重载 Tim ...
- 实验12:Problem F: 求平均年龄
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
- 实验12:Problem C: 重载字符的加减法
Home Web Board ProblemSet Standing Status Statistics Problem C: 重载字符的加减法 Problem C: 重载字符的加减法 Time ...
- 实验12:Problem J: 动物爱好者
#define null ""是用来将字符串清空的 #define none -1是用来当不存在这种动物时,返回-1. 其实这种做法有点多余,不过好理解一些. Home Web B ...
- 实验12:Problem G: 强悍的矩阵运算来了
这个题目主要是乘法运算符的重载,卡了我好久,矩阵的乘法用3个嵌套的for循环进行,要分清楚矩阵的乘法结果是第一个矩阵的行,第二个矩阵的列所组成的矩阵. 重载+,*运算符时,可以在参数列表中传两个矩阵引 ...
- 实验12:Problem E: 还会用继承吗?
Home Web Board ProblemSet Standing Status Statistics Problem E: 还会用继承吗? Problem E: 还会用继承吗? Time Li ...
- 实验12:Problem D: 判断两个圆之间的关系
Home Web Board ProblemSet Standing Status Statistics Problem D: 判断两个圆之间的关系 Problem D: 判断两个圆之间的关系 T ...
- xtuoj 1233 coins(dp)
Coins Accepted : 120 Submit : 305 Time Limit : 1000 MS Memory Limit : 65536 KB Coins Problem Des ...
随机推荐
- 基于Bootstrap的DropDownList的JQuery组件的完善版
在前文 创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件 中,实现了DropDownList的JQuery组件,但是留有遗憾.就是当下拉菜单出现滚动条的时候,滚动条会覆 ...
- docker-image container 基本操作 -常用命令
基本概念: container 容器.可以把每个 container 看做是一个独立的主机. container 的创建通常有一个 image 作为其模板.类比成虚拟机的话可以理解为 image 就是 ...
- [No00003A]操作系统Operating Systems 内核级线程Kernel Threads内核级线程实现Create KernelThreads
开始核心级线程 内核级线程对多核的支持怎么样? 和用户级相比,核心级线程有什么不同? ThreadCreate 是系统调用,内核管理TCB ,内核负责切换线程 如何让切换成型? − − 内核栈,TCB ...
- jsp前三章测试改错题
(选择一项) A: B: C: D: 正确答案是 B ,B/S架构并不是C/S架构的替代品,有些程序例如大型的网络游戏一般使用的是C/S架构. (选择多项) A: B: C: D: 正确答案是 A ...
- 读Java面向对象编程(孙卫琴)
2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...
- 使用javascript实现的雪花飞舞的效果
原作者是在body中不停的插入多个小div雪花来向下慢慢飘,一直飘到body的底部后,将雪花移除,于是,将原来的代码稍加修改,让他只是从屏幕的顶部飘落到屏幕底部(不是body的底部)后,就将雪花移除, ...
- uwsgi+flask环境中安装matplotlib
uwsgi+flask的python有自身的virtual environment,可以通过如下命令进入 . venv/bin/activate 虽然通过sudo apt-get install py ...
- LinkedList子类与Queue接口
LinkedList表示的是一个链表的操作类.定义如下: public class LinkedList<E> extends AbstractSequentialList<E> ...
- 类集-collection接口
类集就是一个动态的对象数组,与一般的对象数组不同,类集的对象类容可以随意扩充. 1,对象数组使用的时候会存在一个长度的限制,那么类集是专门解决这种限制的.使用类集可以向数组增加任意多的数据. 2,对象 ...
- Centos5.8 iptables管理
使用第三方提供的Centos5.8 vmx安装的虚拟机实例, 在安装Tomcat时发现启动后8080端口无法访问, 先检查是否selinux作了限制 查看selinux状态: sestatus 查看s ...