題目一:
你的面前有30個硬幣,其中有10個正面朝上,20個反面朝上,混亂在一團。
要求:現在用厚布遮住你的眼睛。要你把30個硬幣分成2團,每團正面朝上的硬幣個數相等。問:你要怎麼分?不能用手去觸控感覺,也沒有其他人幫忙。
題目二:
我們用4位二進位制數表示硬幣的狀態。由於最終的結果只要4枚硬幣狀態一樣就行,正面還是背面沒有關係,因此0000或1111都可以成功。由此又可以推出任何兩個互為反碼的狀態是等價的,比如1001和0110,對於我們的目標來講沒有區別。因此也不必關心0和1代表的是正面還是背面,只要知道他們的位置關係就可以。
用x和o來表示翻硬幣的方法。x表示把相應位置的硬幣翻過來,o表示保持不動。同樣的,互為補碼的翻法是等價的,比如xxoo和ooxx對結果沒有區別。
下面我們看看任一時刻,4枚硬幣的狀態一共有幾種:
0001
0010
0100
1000
1100
1010
1001
除了成功狀態以外,一共就只有這7種狀態,其他的所有狀態都和這7種中的某一種等價。同樣的可以知道,翻法也只有7種。現在我們再取4枚硬幣,把它們叫做演示硬幣(相應的,原來的那4枚稱作原始硬幣),讓演示硬幣的初始狀態為0000。我們每一次對原始硬幣使用了什麼翻法,就對演示硬幣執行同樣的操作。舉個例子:如果原始硬幣的初始狀態為0010,第一次翻的時候用ooxo的翻法,那麼翻過一次以後,原始硬幣狀態變成0000,演示硬幣變成0010。
可以看到,在任一時刻,當且僅當演示硬幣的狀態和原始硬幣的初始狀態相同時,翻成功。而原始硬幣一共有7種初始狀態。因此,要保證成功,就必須使演示硬幣能呈現出所有7種狀態,這樣才能保證原始硬幣無論具有哪種初始狀態都一定會在某一步成功。故最少需要7步。翻法如下: 步驟
翻法翻過以後演示硬幣的狀態
第1步ooox
0001
第2步ooxx
0010
第3步oxxo
0100
第4步xxoo
1000
第5步oxoo
1100
第6步oxxo
1010
第7步ooxx
1001
第二問:現在將4枚硬幣排成正方形(2*2的矩陣),每翻過一次以後,旁邊有個人會將整個硬幣圖案旋轉90度的任意倍數。有沒有辦法仍然保證能翻成功?最少需要幾步?
面試官說20分鐘內能解出這道題的人是天才。不過就我看來,找到解題的思路並不困難。
由於每一次都會隨機的旋轉,所以硬幣的某個狀態旋轉成各種角度都是等價的,也就是說,下面每一行的狀態都是等價的:
狀態a0 1
0 01 0
0 00 0
0 10 0
1 0狀態b
1 10 0
1 01 0
0 10 1
0 01 1
狀態c0 1
1 01 0
0 1可以看到,事實上只有3種不同的狀態。同樣的,由於在翻硬幣之前會旋轉,所以我們根本無法知道自己翻了哪乙個硬幣,只知道自己翻了幾個,怎麼排列。所以實際上只有3種翻法,和3種狀態正好是類似的。
翻法xo x
o ox o
o oo o
o xo o
x o翻法y
x xo o
x ox o
o xo x
o ox x
翻法zo x
x ox o
o x下面分析對每一種狀態,執行每一種翻法之後會變成什麼狀態。結果單元格對應行是初始狀態,列是翻法。用end表示成功(全0),「/」分隔幾種可能的狀態。
xo x
o oyx x
o ozo x
x oa0 1
0 0b/c/endaa
b1 1
0 0a
c/end
bc0 1
1 0a
bend
最後一行是突破的關鍵點,因為對c狀態進行z翻法必定會結束,而其他的都不能保證結束。那麼,我們的策略是想辦法讓a和b轉換成c,然後用z就結束了。整個翻法如下:(列出每一種初始狀態在進行到一定步數後的狀態)
步驟翻法
初始狀態a
初始狀態b
初始狀態c
第1步zab
end第2步ya
c/end
第3步z
aend
第4步x
b/c/end
第5步z
b/end
第6步y
c/end
第7步z
end最少7步保證結束。另外給出最少步數的證明:因為在不旋轉的情況下都最少要7步,所以旋轉情況下的步數不可能比7步少,否則的話就可以用旋轉的解法來解決不旋轉的問題,故最少需要7步。
面試智力題 硬幣問題
題目一 你的面前有30個硬幣,其中有10個正面朝上,20個反面朝上,混亂在一團。要求 現在用厚布遮住你的眼睛。要你把30個硬幣分成2團,每團正面朝上的硬幣個數相等。問 你要怎麼分?不能用手去觸控感覺,也沒有其他人幫忙。題目二 我們用4位二進位制數表示硬幣的狀態。由於最終的結果只要4枚硬幣狀態一樣就行...
面試智力題 硬幣問題
題目一 你的面前有30個硬幣,其中有10個正面朝上,20個反面朝上,混亂在一團。要求 現在用厚布遮住你的眼睛。要你把30個硬幣分成2團,每團正面朝上的硬幣個數相等。問 你要怎麼分?不能用手去觸控感覺,也沒有其他人幫忙。題目二 我們用4位二進位制數表示硬幣的狀態。由於最終的結果只要4枚硬幣狀態一樣就行...
面試智力題
最近蒐集了一些面試的智力題,特來分享一下,改變下思維方式 1 燒一根不均勻的繩子,從頭燒到尾總共需要1個小時,問如何用燒繩子的方法來確定半小時的時間呢?2 10個海盜搶到了100顆寶石,每一顆都一樣大小且價值連城。他們決定這麼分 1 抽籤決定自己的號碼 1 10 2 首先,由1號提出分配方案,然後大...