假設有N個犯人,其中M個戴紅帽。考慮一個戴白帽的犯人,他可以看到其他N-1個人戴的帽子,並知道其中M個是紅帽,N-M個是白帽。因此他可以計算出如果他戴紅帽,那麼其他人就會看到M-1個紅帽和N-M個白帽,這個情況下其他人無法確定自己戴的帽子顏色。相反如果他戴白帽,那麼其他人就會看到M個紅帽和N-M-1個白帽,這個情況下其他人就可以確定自己戴的帽子顏色。
因此每個犯人只需要根據其他人戴的帽子的顏色來判斷自己戴的帽子顏色即可。為了讓所有犯人在最少的天數內都確定自己戴的帽子顏色,可以讓每個犯人都等待一定的天數,根據其他人的帽子顏色來判斷自己戴的帽子顏色。最短的等待天數即為二進制下表示犯人數量N所需的位數,即log2(N)。因此最少需要log2(N)天。
所以:
如果只有一頂紅帽,直接等一天後所有人都出獄
如果有兩頂紅帽,則需要等兩天才能讓所有人都出獄
如果紅帽數量大於等於三頂,則需要等 ceil(log2(n)) 天,ceil(log2(n)) 表示 n 的二進位表示需要的位數。犯人可以利用二進位表示將犯人分成 2^(ceil(log2(n))-1) 個小組,每個小組中的犯人觀察其他犯人帽子的顏色,根據帽子顏色的奇偶性決定自己帽子的顏色,最後在第 ceil(log2(n)) 天結束時所有犯人均已確定自己的帽子顏色