6.4 A bunch of people are living on an island, when a visitor comes with a strange order: all blue-eyed people must leave the island as soon as possible. There will be a flight out at 8:00pm every evening. Each person can see everyone else's eye color, but they do not know their own (nor is anyone allowed to tell them). Additionally, they do not know how many people have blue eyes, although they do know that at least one person does. How many days will it take the blue-eyed people to leave?

这道题假定一个岛上有很多人,其中有些人是蓝眼睛的,设定是蓝眼睛的人要尽可能早的离开岛,每天晚上八点都有飞机离开岛。每个人可以看见别人眼睛的颜色,但是不知道自己眼睛的颜色,而且也不能被告知,问需要多少天可以让蓝眼睛人都离开。

这道题让我想起来了很小时候听过的一道智力题,是小猴带帽的问题,说是有四个帽子,三个蓝色一个红色的,有三只小猴一人戴其中一个帽子,每只小猴不知道自己戴的什么颜色的帽子,但能看到其他小猴戴的帽子的颜色。其中一只小猴看到其他两只小猴都是蓝色的帽子,它就在考虑自己的到底是红色的还是蓝色的,当它发现大家都陷入了沉思时,它马上说自己戴的是蓝色的,请问问什么?我小时候想了很久都不明白,其实很简单,如果这小猴戴的是红色的帽子,那么其他小猴马上就知道自己戴的是蓝色的,因为只有一顶红色的帽子,既然其他小猴也不知道,那么自己戴的肯定是蓝色的。

这道题的思路和上面的小猴戴帽有些类似,我们先从简单的开始分析,假设岛上有c个人是蓝眼睛:

1. c = 1, 这种情况最简单,应为那个人看到周围都没有蓝眼睛,由于题目设定了一定有蓝眼睛,那么自己肯定是,所以当晚就可以坐飞机离开。

2. c = 2,这时候蓝眼睛的人可以看到周围有一个人是蓝眼睛,那么他可以推断岛上只有1个或2个蓝眼睛人,如果那人第一晚,没走,他就可以推断出自己也是蓝眼睛,于是两个蓝眼睛的人第二晚同时走了。

3. c = 3,和上面类似,蓝眼睛的人可以看到周围有两个蓝眼睛,则推断岛上有2个或3个蓝眼睛人,如果只有两个蓝眼睛,那么他两第二天晚上就会同时离开,如果第二晚没有离开,则说明自己也是蓝眼睛,则三人第三晚上同时离开。

4. c = c, 推广到c个人,根据如上分析,c个蓝眼睛的人会等到第c天晚上,所有c个蓝眼睛的人同时离开。

[CareerCup] 6.4 Blue Eyes People on Island 岛上的蓝眼人的更多相关文章

  1. CareerCup All in One 题目汇总 (未完待续...)

    Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...

  2. CareerCup All in One 题目汇总

    Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...

  3. Blue Star(日剧:今夜 可否拥你入怀歌词)

    BLUE STAR-COLOR CREATION Oh I Know I need you in my life ひさしぶりの 译:时隔许久的 やわらかなかせがふきぬける 清风温柔吹拂 むねのおくの ...

  4. Fishnet(暴力POJ 1408)

    Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1911   Accepted: 1227 Descripti ...

  5. Fishnet(计算几何)

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1642   Accepted: 1051 Description A fis ...

  6. POJ 1408 Fishnet【枚举+线段相交+叉积求面积】

    题目: http://poj.org/problem?id=1408 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...

  7. 蓝眼睛与红眼睛(The blue-eyed islanders puzzle)

    澳大利亚的华裔数学神童陶哲轩曾在网上贴出来一个问题 The blue-eyed islanders puzzle 让大家思考,逗大家玩儿. 说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛.这个 ...

  8. POJ 1408:Fishnet

    Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1921   Accepted: 1234 Descripti ...

  9. CSS3与页面布局学习总结(七)——前端预处理技术(Less、Sass、CoffeeScript、TypeScript)

    CSS不像其它高级语言一样支持算术运算.变量.流程控制与面向对象特性,所以CSS样式较多时会引起一些问题,如修改复杂,冗余,某些别的语言很简单的功能实现不了等.而javascript则是一种半面向对象 ...

随机推荐

  1. UVa 105 - The Skyline Problem(利用判断,在于想法)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  2. Effective Java 57 Use exceptions only for exceptional conditions

    Principle Exceptions are, as their name implies, to be used only for exceptional conditions; they sh ...

  3. Web Farm 和Web Garden

    这两个都是提高网站性能的服务器端技术 1.Web Farm:如果应用程序被多个服务器托管,这种情况就可以称作Web Farm. 2.Web Garden: 指的是一个应用程序可以分成多个进程(w3wp ...

  4. nginx添加模块 (非覆盖安装)

    nginx添加模块(非覆盖安装) 原已经安装好的nginx,现在需要添加一个未被编译安装的模块: 查看原来编译时都带了哪些参数# /usr/local/nginx/sbin/nginx -V ngin ...

  5. 使用NDK c++建立一个Android应用

    使用NDK c++建立一个Android应用 一.工具 ADT(集成了eclipse,cdt,ndk plug-in) NDK (用它来编译c/c++程序) JDK (Java开发包) ANT(ecl ...

  6. 记一次linux服务器问题处理过程

    本周二的时候,涛哥找我,说明了一件事,在安装ganglia的时候,发生的一个问题. 在一台suse 10 sp1的服务器上,安装ganglia的一个依赖包,libconfuse.rpm,安装完成之后, ...

  7. 【C++】array初始化0

    让代码...优雅? ==================分割线==================== 局部数组:没有默认值,如果声明的时候不定义,则会出现随机数(undefined):如果声明的长度 ...

  8. Could not open INSTALL.LOG file

    今天卸载MailEnable时弹出这个提示,用360这样的工具卸载问题依旧,折腾了大半天没解决 UNWISE Could not open INSTALL.LOG file 本人有强迫症,虽然这个软件 ...

  9. 前端的瑞士军刀:Modernizr.js

    前言 Modernizr.js既能给老版本浏览器打补丁,又能保证新浏览器渐进增强的用户体验. 作用: 从实际操作来看,Modernizr默认做的事情很少,除了(在你选择的情况下)给不支持html5的标 ...

  10. jquery模拟下拉框单选框复选Select,Checkbox,Radio

    在项目中,你会发现设计稿中常常会有单选框,复选框,但都不是系统默认的样式,这就可以用jquery来模拟它们:如图所示,实现它们所需要的代码如下: 首先需要引入的代码: <link rel=&qu ...