囚犯开会时选出一个囚长,他的作用是: 从进自己牢房的第一天起,每隔100天给他的左边邻居一个偶数,其余时间都给奇数。 其它囚犯都在传给自己偶数的时候挂起红旗,奇数则挂起黄旗。同时把传给自己的数传下去。(当然要修改到自己可以报的范围内)。 |
1.那开始时从其他所有人传出的数也必须是奇数? 2.如何防止看守的破坏? |
我开始也认为呵呵的解法行不通,疑问和你的一样,但是如果你仔细想想,就会发现,看守破坏不是问题。 他破坏就让他去破坏,总有一天,犯人到齐了,看守就破坏不了了。也就是说,持续这样下去,我们总会遇到一个连续的100天,会满足要求。 现在的问题是,呵呵的解答很简单(不是很容易想到,但是看了答案觉得不难)。我想也许题目本身有误,应该做些修改,让它难些。
|
1、其他所有人传出的数也必须是奇数? 不必,其他所有人只需把传给自己的数不改变奇偶性传下去就行了。同时根据传给自己的数的奇偶性挂起红旗或黄旗。囚长则从第一天起,每隔100天传偶数(同时挂起红旗),其余时间都传奇数(同时挂起黄旗)。 2、如何防止看守的破坏? 看守的破坏只在所有囚犯都进入自己的牢房之前起作用,之后便无法破坏了(如果所有囚犯都进入自己的牢房之后,看守能任意改变所传的数,传数就没有意义了)。 基本思路是这样的: 把偶数看作令牌,得到令牌的挂起红旗,否则挂起黄旗。囚长的作用是产生自己的令牌并过滤掉别人的令牌(包括看守假传的)。所有囚犯都进入自己的牢房那天起,尽管此时可能有很多令牌,但此时看守已不能改变令牌的数量和状态,只有囚长可以。最多100天后,囚长可以保证只有一个自己发出的令牌在传递(其他的都被囚长过滤掉了),此时每天只有一个得到令牌的囚犯挂起红旗,其余都挂起黄旗。再过最多200天后,就可以保证有连续100天,第k天只有第k间牢房挂起红旗,其他全是黄旗。所以最多300天就可以了。 不知对题目的理解对不对。 |
修改难些很简单。只要规定第K间牢房的右边是第K+1间就可以了。只是不知是否有解。 |
欢迎光临 珍珠湾ART (http://66.160.158.134/) | Powered by Discuz! X3 |