2014年1月16日 星期四

札記-數學-猜數字

故事是這樣的,有兩個人在玩小遊戲。
第一組數字:3, 4, 7, 8, 11, 12, 15, 16
      19, 20, 23, 24, 27, 28, 31, 32
第二組數字:2, 4, 6, 8, 10, 12, 14, 16,
      18, 20, 22, 24, 26, 28, 30, 32
第三組數字:9, 10, 12, 13, 14, 15, 16,
      25, 26, 27, 28, 29, 30, 31, 32
第四組數字:17, 18, 19, 20, 21, 22, 23, 24,
      25, 26, 27, 28, 29, 30, 31, 32
第五組數字:5, 6, 7, 8, 13, 14, 15, 16,
      21, 22, 23, 24, 29, 30, 31, 32
甲:你心頭想一個數字,值要介於1~32之間。想好後別說。
   這裡五組數字,看完告訴我,只有哪幾組有你的數字。
   我就能猜出答案。
   比如說,你數字是15,在第一、三、五組有。
   你只要跟我說,他只出現在一、三、五組,
   我便能馬上知道是15。
乙:了解,那開始吧...只有二、四組有我想好的數字。
甲:是18。
乙:沒錯。再來一次...只有一、五組。
甲:7。
乙:正確!這些數字有什麼排列規則嗎?


我猜理工組的人在3分鐘內就可以看出端倪,知道為什麼。
尤其軟體工程師會更快一點!其關鍵就是:二進位。

用工程師的語言來解釋好了,
第一組是bit 1(2), 第二組是bit 0(1), 第三組是bit 3(8),
第四組是bit 4(16), 第五組是bit 2(4)

該組有,代表其bit x值為1,反之,bit x值為0。
加總後再加一,就知道答案了。

由於很少有人會設定1,因此數目只有2~32不會被察覺。
我想把值增加到64個,可以拿來騙騙我十一歲的小姪女,
她應該會覺得很神奇吧,哈哈。