2005年1月17日 星期一

假鈔問題


Question:
有個商品賣30元,成本25元,客人用100元紙鈔跟商人買了商品,商人沒錢找所以拿了這張紙鈔去跟隔壁攤販換零錢找給客人,後來隔壁攤販跑來說那是假鈔,所以商人又賠了100元給隔壁攤販,試問商人總共虧多少錢?









Answer:
可以把買賣與鈔票交換分開來看
商人給了客人25元的商品,然後拿70元給客人,損失95元。
商人從客人收了100元的假鈔,去換成100元真鈔,然後又把真鈔歸還,損失0元。
因此總共損失 95元。

換個方式思考
商人原本有25元,買了25的東西來賣給客人,商人剩下 0元
商人拿了 100元的假鈔,然後去跟隔壁攤販拿了100元,商人身上剩下100元
商人找了70元給客人,商人身上剩下30元
商人把還了100元給隔壁攤泛,商人身上剩下 -70元
因此,原本有25元減去剩下-70元,商人共損失95元



reference: realtek

喊數字遊戲


Question:
如果兩個人比賽,從1數到100,喊到100的人獲勝,每一次最少喊一個數,最多喊七個數,先攻的人喊到幾時便保證必勝?
                                                                             









Answer:                                                                        
如果自己要喊100,對方必須只能喊99~93,
        自己要喊  92,對方必須只能喊91~85,
        ...........................
        自己要喊  12,對方必須只能喊11~  5,
        自己要喊    4

因此只要先喊到4,則先喊的人必獲勝
往後原則就是喊 [8-對方喊幾次]

例如 A喊4
         B喊1次到5
         A喊(8-1=7次)到12
         直到A喊到92時,B不管怎樣都不會贏



reference: realtek

九顆球秤重


 Question:
有九顆看起來一模一樣的球 ,但是有一顆不一樣重,也不知道它是比較輕還比較重,用一個天秤最少要量幾次可以"確保"找出這顆球?
                                                                             









Answer:
3次。
                                                                             
第一次
拿六顆球放在天秤上,假設有一邊比較重,那麼就能知道,不一樣重的球是這六顆其中之一

                             |O_O_O     (假設右邊有一顆比較輕的球) [也可能左邊是重球1個]
                O_O_O|                  (下一輪把右邊三顆換成最後三顆)
                                                                             
第二次
換掉輕的三顆,拿另外三顆上來量,如果天秤平衡了,就能知道不一樣重的球是剛剛被換掉的三顆其中之一

                 O_O_O|O_O_O     (確認假設正確,第一次的右邊果然有輕球)
                                                 [因為如果左邊有重球那第二次比還是要左邊天秤較重]
                                                                             
第三次    
拿另外三顆的其中兩顆來量,如果平衡了,那麼第三顆就是輕的球

                           O|O              (都知道有輕球了,平衡就是第三個是輕的)


衍生問題,如果已知不一樣重的球是比較輕的,那就只需要兩次了。



reference: realtek

Great Articles


猴子靈藥 - MSVC與CRT的恩怨情仇
http://blog.monkeypotion.net/gameprog/beginner/love-and-hate-between-msvc-and-crt

官方 - C 標準函式庫
http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html

官方 - GNU C Library Source Code
http://www.gnu.org/software/libc/

extern "C"的涵意
http://aftcast.pixnet.net/blog/post/22457055

C++ pthread 教學
http://codebase.eu/tutorial/posix-threads-c/
http://www.tutorialspoint.com/cplusplus/cpp_multithreading.htm

C++ WIN32 API thread 教學
http://wuminfajoy.blogspot.tw/2010/10/c.html