[url]
現在有12個金幣,其中乙個有質量問題(或重或輕),還有乙個無砝碼的天平,讓你稱三次怎麼樣找到那個有質量問題的金幣?
這個題目是比較經典的智力題,俺記得第一次解這個題目是學二叉樹的時候,俺當時死活要跟二叉樹聯絡起來,汗
一種解法:
第乙個量重比較是 4 對 4
考慮以下兩個可能:
a) 左邊比較重
b) 兩邊一樣重
若是 a),那麼假的金幣就在天秤上,即是說餘下的金幣全都是真的,為了方便,把金幣命名如下:
h1, h2, h3, h4, l1, l2, l3, l4, r1, r2, r3, r4
當中 h1, h2, h3, h4 是在重的一端的金幣; l1, l2, l3, l4 是在輕的一端的金幣;而 r1, r2, r3, r4 就是餘下的真金幣。在這情形下,有兩個可能性:假的金幣較重而且是 h1, h2, h3, h4 的其中乙個;或者假的金幣較輕而且是 l1, l2, l3, l4 的其中乙個
第二個量重比較是這樣的:
h1,h2,l1,l2 對 h3,l3,r1,r2
有 3 個可能性:
c) 左邊較重
d) 右邊較重
e) 兩邊一樣重
若是 c),那麼假金幣只可能是 h1, h2 或 l3 ,最後的量重是 h1 對 h2,就可以得出答案了
若是 d),那麼假金幣只可能是 l1, l2 或 h3,最後的量重是 l1 對 l2,就可以得出答案了
若是 e),那麼假金幣只可能是 h4 或 l4,最後的量重是 h4 對 r1,就可以得出答案了
到此 a) 這個可能是完成了
現在處理 b),這時天秤上的金幣都是真的,假的金幣就在餘下的金幣內,以以下方法把金幣命名:
r1, r2, r3, r4, r5, r6, r7, r8, u1, u2, u3, u4
當中 r 是真的金幣,u 是餘下的金幣。
第二次量重是這樣的:
r1, r2, r3 對 u1, u2, u3
有兩個可能:
f) 左邊較輕
g) 兩邊一樣重
若是 f),那麼假金幣就是較輕的,而且是在 u1, u2, u3 之中。最後比較 u1 和 u2 就知道答案了。
若是 g),那麼 u4 就是假金幣但還未知道這個金幣是較重還是較輕,只需把它和其中乙個真金幣比較一下就知道了。
金幣陣列問題
問題描述 有m x n m 100,n 100 個金幣在桌面上排成乙個m行n 列的金幣陣列。每一枚金幣或正面朝上或背面朝上。用數字表示金幣狀態,0表示金幣正面朝上,1 表示背面朝上。金幣陣列遊戲的規則是 1 每次可將任一行金幣翻過來放在原來的位置上 2 每次可任選2 列,交換這2 列金幣的位置。程式...
金幣陣列問題
有m n枚金幣在桌面上排成乙個金幣陣列。每乙個金幣正面朝上,或背面朝上,分別用0和1表示。金幣陣列遊戲的規則是 1 每次可將任一行金幣翻過來放在原來的位置上 2 每次可任選2列,交換這2列金幣的位置。給定金幣的初始狀態和目標狀態,計算按金幣遊戲規則,將金幣陣列從初始狀態變換到目標狀態所需的最少變換次...
金幣陣列問題
有m n枚金幣在桌面上排成乙個金幣陣列。每乙個金幣正面朝上,或背面朝上,分別用0和1表示。金幣陣列遊戲的規則是 1 每次可將任一行金幣翻過來放在原來的位置上 2 每次可任選2列,交換這2列金幣的位置。給定金幣的初始狀態和目標狀態,計算按金幣遊戲規則,將金幣陣列從初始狀態變換到目標狀態所需的最少變換次...