这题其实和概率关系不大,当然也非脑筋急转弯的类型(有人说:把灯泡打碎,分成100块,每人拿一块,拿完为止:),题目的意思很简单,就是只通过一盏灯的开、关两个状态,来找到一种方法确保100人都到过的那个房间。注意是确保,就是说您的方法必须保证100人都到过了,所以周泽雄兄的方法,呵呵,有点危险,搞不好100个人就都砍头了。 1. 方法一很简单,上面的贴子已经说到了,第一天出来的这个囚徒负责关灯,以后出来的囚徒: 1)当灯是关着的时候,如果他没有开过灯,那他可以打开灯,否则他不能开灯; 2)当灯是开着的时候,他不动灯。 3)第一个囚徒在他放风的时候,如果发现灯是开的,那么他就关闭灯。这时他就把放过风的囚徒数加一。 当第一个囚徒的计数达到99的时候(加上他自己是100),他就可以宣布所有的囚徒都放过风啦。 2. 方法二可以省一点时间,因为是完全随机的抽取,所以前面被重复抽到的概率比较小,所以一开始不固定哪个是记数员,记数员定为第一次被重复抽到的那个人为记数员, 分两个阶段: 阶段一:前100天决定谁来计数。 1)第1-99天,初始灯关着,第一个两次放过风的人将成为计数者,并将灯关上。设其为第K天第2次放风,则他知道已经有k-1个人放过风,做为100天后计数的初始值。 2)第100天放风的人如果看见等关着,则宣布所有人都放过风;否则把灯关上 阶段二:100天后(按方法一计数) 1)如果计数者放风看见灯开着,则将放过风的人数加1,到100时宣布胜利 2)其他人如果以前没放过风,并且灯关着,则开灯,否则不动 3. 方法三(我到现在也没有想明白), 第三种方法提示如下:分为一个基本记数者和N个2级记数者,基本记数者的独立记数上限Cp和2级记数的独立计数上限Cs,时间由长度为S1和S2的两段交替组成.在S1阶段,计数者计数直到达到其独立计数上限,在S2阶段,达到计数上限的2级计数者将通过开灯方法告诉基本计数者直到基本计数者得到所有2级计数者完成任务并加上自己计数为100时宣布自由. (我想不明白的地方就是:如果在S2阶段,有个2级计数者开了灯,但基本记数者还没有被抽到就又到S1阶段,那怎么办??)
|