好玩的题目

101个囚犯

Posted in 好玩的题目 on 四月 10th, 2010 by Shiaron – Be the first to comment

在一个监狱里,有101个犯人,被关在101个独立的牢房里,互相无法通信。

一天,召开全体囚徒大会。国王大赦,给大家一个机会。

条件:在当天夜里,会有人来把每间牢房门的正面随机地刷上黑色或者白色,颜色的选择是同等概率随机的(比如用抛硬币的方法决定门上该刷黑色还是白色),犯人们都不知道自己门上被刷了什么颜色。
read more »

判断一个整数是不是2的乘方

Posted in 好玩的题目 on 四月 10th, 2010 by Shiaron – Be the first to comment

如何判断一个整数是不是2的乘方?很简单

return n==0 ? false: (n&(n-1)==0)

对于2的乘方,二进制必然是 1000000000…的形式,n-1则为 0111111111….的形式
所以n与上n-1 就为0了

现在要证明,有且只有2的乘方符合 n&(n-1)==0

read more »