微软/IBM面试题之帽子问题、死狗问题

原创 2007年09月26日 12:26:00
 
       
       由微软/IBM面试题所想到的——
                                   —浅谈C语言选择结构 条件语句
           测试空间旗下大头针出品
   人生要面临各种各样的选择,应该说选择是无处不在的。我们上街买衣服会多跑几家商场,我们找个女朋友,也会对比多个。选择的时候一般的原则是货比三家。无论用什么样的方法,最终我们还是将衣服买了下来,将属于自己的女朋友领会了家。结果是我们拥有了新的衣服或者新的女朋友。而我们通过买衣服或者选女朋友这些事情,得出一个朴素的道理,当我们选择的时候要货比三家。其实如果我们再仔细想象,我们为什么会买这件衣服蓝色的T shirt,不买那件那件蓝色的T shirt。因为这件蓝色的衣服,是刘德华代言的,而且是圆领的T shirt。哦,突然间恍然大悟,当我们选择一样东西的时候,最重要的是清楚的知道我们选择的条件。条件清楚了我们就知道该买什么了。
  日常生活是这样的,当我们做程序的时候也是同理。因为程序就是要解决日常生活中的问题,是对日常生活的抽象。
  当你学到选择结构的时候我们要学习if语句,而对与if语句来说最重要的就是,if语句的条件。
 例如:
 
一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?
面对这样的推理,我们可以用if--else来表示:
但你首先碰到一个难题,就是我们如何推理,用什么样的方法,才能把这个问题解决。
其实这个可以利用我们从买衣服那里得到的道理:找出我们的条件,这是最重要的。
思前想后,终于想出了我假设的条件:
if(舞会中黑帽子==1) //如果舞会中只有一顶黑帽子
   带黑帽子的人看到都是白帽子,肯定就知道自己是黑帽子,
   预期结果:应该给自己一耳光
   实际结果:没有听见声音,(呵呵,发现一bug)所以这种情况是不成立的
else if(舞会中黑帽子==2)//如果舞会中只有两顶黑帽子。
     带黑帽子的人应该看到别人带了一顶黑帽子,因为舞会只有两顶黑帽子,所以
     自己肯定是带黑帽子的人。
     预期结果:应该听见两声耳光
     实际结果:没有听见耳光.
else if(舞会中黑帽子==3)//如果舞会中只有三顶黑帽子
     带黑帽子的人应该看到两顶黑帽子,和一堆白帽子。因为舞会只有三顶黑帽
     子,所以自己肯定是带黑帽子的人。
     预期结果:应该听见耳光声
     实际结果:听见耳光声。(呵呵,符合情况,bug已修复)
上面的这道题,据说是微软/IBM考察软件测试工程师面试题。当然还有一个死狗问题,跟这个差不多。就不祥谈了。为啥考这样的题目,经过一分析应该知道了。考察的是1.你有没有逻辑思维。2.有没有测试思维。
我每次讲到C的时候,都会插入这么段小故事,目的就是让大家明白。对于选择结构而言,最重要的就是,要清楚的了解条件是什么。只有知道了条件,其他的都会水到渠成。
 
 

50只狗(IBM面试题)

  一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之...
  • s_ware
  • s_ware
  • 2006年12月21日 16:55
  • 6905

病狗问题以及帽子颜色那个题

题目: 一个村庄有70户人家,每户人家养一条狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否是病 狗。现在,大家决定每户人家自行处决各自的病...
  • a595669947
  • a595669947
  • 2014年08月02日 09:11
  • 1055

IBM面试题 50条狗 有病狗 有几条病狗?

题目:村子里有50个人,每人有一条狗,在这50条狗中有病狗(这种病不传染),于是人们要找出病狗。 每个人可以观察其他49条狗,以判断他们是否生病,(如果有病一定能看出来),只有自己的狗不能看,观...
  • chivalrousli
  • chivalrousli
  • 2014年03月06日 10:54
  • 3313

【算法】帽子问题

今天看到在微信上有人发了这一道数学题,题目如下: 我当时看到这题一眼就认为答案是c(用的是排除法),然后我就分析了一下,发现这个题最重要的条件并不在题设中。 这个条件就是:当不确定的时候不会有人...
  • zfpigpig
  • zfpigpig
  • 2015年12月21日 10:46
  • 2215

IBM的面试题

1、村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能...
  • qq_20545159
  • qq_20545159
  • 2015年03月06日 00:08
  • 899

黑帽子和白帽子(面试智力题)

一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其它人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子...
  • zhouweiabc
  • zhouweiabc
  • 2014年06月08日 20:04
  • 5064

44 腾讯面试题 魔方 短信 url

/* 44.腾讯面试题(算法): 1.设计一个魔方(六面)的程序。 2.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。 请用 5 分钟时间,找出重复出现最多的前 10 条。 3....
  • u012605629
  • u012605629
  • 2014年09月26日 12:24
  • 749

杀狗问题(帽子问题)

说IBM 、微软都曾用过该题做面试题,觉得经典,就收藏之。原题如下:某村50户、每户养一犬,其必有瘟者,令每朝观犬,发现瘟者,立毙之,非犬主不可弑之。然主唯己犬不辨,且互默。首日,平;翌日,平;三日,...
  • jzj1006
  • jzj1006
  • 2010年04月12日 17:40
  • 1237

微软面试题病狗问题

有50家人家 每家一条狗 有一天警察通知,50条狗当中有病狗,行为和正常狗不一样 每人只能通过观察别人家的狗之间对比来判断自己狗是否生病,而不能看自己狗,如果判断出自己家的狗病了以后就当天一枪打死自己...
  • DuoDuo_smile
  • DuoDuo_smile
  • 2015年04月28日 16:40
  • 345

微软面试题:飞机加油问题(智商被压制的节奏,好精妙)

 智商被怒压制了,稍微想了下以为是7架飞机。看来微软的题目都得仔细推敲,如果能随便算出来那还是微软么?233333333333333333.         (1)每个飞机只有...
  • Miracle_ma
  • Miracle_ma
  • 2014年12月23日 21:13
  • 1697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微软/IBM面试题之帽子问题、死狗问题
举报原因:
原因补充:

(最多只允许输入30个字)