假幣的重量與真的不壹樣
能利用天平稱量三次,找出假幣,並判斷假幣的重量比真幣的重量重還是輕.
將硬幣分成三組,每組四枚,分別表示為:
G1 = (1,2,3,4),G2 = (5,6,7,8),G3 = (9,10,11,12).
在第壹次稱量時比較G1和G2,它們或者平衡或者壹組更重些,下面分別考慮這兩種情況:
如果G1和G2平衡,那麽假幣必定在G3中,即G1和G2中的所有硬幣都是真的.這樣,在第二次稱量中,就可以比較任意三枚真幣(比如1,2和3)和G3中的三枚硬幣:
(1,2,3)和(9,10,11)
所得結果比較為:
1,、硬幣平衡.這表明假幣為12,因為它是G3中唯壹在第二次稱量中未出現的硬幣,再進行第三次稱量(比如1與12)就可以確知假幣比其他硬幣重還是輕.
2、硬幣不平衡.這表明假幣是9、 10、 11中的某壹個,並且還可以知道假幣是輕些還是重些.如果(1、 2、 3)比(9、 10、 11)重些,那麽假幣就輕些,反之亦然.再進行第三次稱量(比如9與10)就可以確定是哪壹枚是贗品.如果9和10平衡,那麽假幣是11,如果不平衡,那麽根據前面已知的假幣是輕些還是重些的信息就可以知道它們中的哪壹枚是假幣.
如果G1和G2不平衡,那麽我們可以知道,1.、 假幣在G1或G2中 2.、 硬幣9.、 10、 11和12是真幣.
把G2中的壹枚硬幣(比如5)移到天平的左邊,在天平的右邊加壹枚真幣(比如12).這樣第二次稱量就是(1、 2和5)與(3、 4、 12).
假設在第壹次稱量中,硬幣(1、 2、 3、 4)比(5、 6、 7、 8)重些,那麽在第二次稱量中有三種可能的結果:
1、 硬幣(1、 2、 5)重些.這表明硬幣3、 4 和5是真的,因為我們改變了它們在天平中的位置,但稱量的結果仍然不變(即左邊重些).由於硬幣12是真的,那麽假幣就是1或2,並且假幣重些.再進行第三次稱量(1與2)就可以馬上確定哪枚是假幣.
2、 硬幣(3、 4、 5)重些.由於兩車稱量的結果發生了改變(也就是第壹次稱量天平左邊重些,而現在右邊重些),那麽假幣壹定是從天平的壹端移到了另壹端.因此,或者硬幣3或4是假的,並且重些.或者硬幣5是假的,且輕些.這樣再進行第三次稱量(3與4)就可以確定出贗品.如果平衡,則假幣是5,否則,較重的那個是假幣.
3、 硬幣(1、 2、 5)和(3、 4、 12)平衡.這表明假幣必定不包含在第二次稱量中,而必為6、 7或8中的壹枚.同時,從第壹次稱量的結果可知假幣較輕.這樣,再進行第三次比較。
擴展資料:
c語言題目 - 稱硬幣
描述 ?
賽利有12枚銀幣。其中有11枚真幣和1枚假幣。假幣看起來和真幣沒有區別,但是重量不同。但賽利不知道假幣比真幣輕還是重。於是他向朋友借了壹架天平。朋友希望賽利稱三次就能找出假幣並且確定假幣是輕是重。例如:如果賽利用天平稱兩枚硬幣,發現天平平衡,說明兩枚都是真的。如果賽利用壹枚真幣與另壹枚銀幣比較,發現它比真幣輕或重,說明它是假幣。經過精心安排每次的稱量,賽利保證在稱三次後確定假幣。
關於輸入 ?
第壹行是n,表示數據***有n組。 ?
其後是n*3行。每組數據有三行,每行表示壹次稱量的結果。賽利事先將銀幣標號為A-L。每次稱量的結果用三個以空格隔開的字符串表示:天平左邊放置的硬幣 天平右邊放置的銀幣 平衡狀態。其中平衡狀態用"up", "down", 或 "even"表示, 分別為右端高、右端低和平衡。天平左右的銀幣數總是相等的。
關於輸出 ?
輸出為n行。每行輸出壹組數據中哪壹個標號的銀幣是假幣,並說明它比真幣輕還是重。 ?
如果第K枚銀幣是假,並且它是輕的,則輸出: ?
K is the counterfeit coin and it is light. ?
如果第K枚銀幣是假,並且它是重的,則輸出: ?
K is the counterfeit coin and it is heavy.
例子輸入 ?
1
ABCD EFGH even
ABCI EFJK up
ABIJ EFGH even
例子輸出 ?
K is the counterfeit coin and it is light.