猜牌的遊戲 - 拼圖

By Odelette
at 2010-10-20T16:43
at 2010-10-20T16:43
Table of Contents
※ 引述《LPH66 (-858993460)》之銘言:
: 原題目恕刪
: 這裡提供一個問七次可以保證猜中的問法
: (同樣限定恰說謊一次)
: 這七個問題是: 分別詢問是否出現在下列集合當中
: {A,3,4,6,8,T,K}
: {A,2,5,6,8,J,Q}
: {8,9,T,J,Q,K}
: {A,2,4,7,9,T,Q}
: {4,5,6,7,Q,K}
: {2,3,6,7,T,J}
: {A,3,5,7,9,J,K}
看了一下用數學的特性寫出來應該比較容易理解
Q1{A, 9, 11,12,13}
Q2{ 2, 5,6, , 9, ,12,13}
Q3{ 2, 7,8,9,10,11, ,13}
Q4{ 3, 5, ,7, 9,10, ,12,13}
Q5{ 3, 6, ,8, ,11,12,13}
Q6{ 4,5, , ,8, 10, ,12,13}
Q7{ 4, ,6,7, , 10,11,12,13}
7個No->A
6個No 1Yes->2,3,4(可由yes位置判斷答案)
5個No 2Yes->A,5,6,7,8(可由yes位置判斷答案)
4個No 3Yes->2,3,4,9,10,11(可由yes位置判斷答案)
3個No 4Yes->5,6,7,8(可由yes位置判斷答案)
2個No 5Yes->9,10,11,12(可由yes位置判斷答案)
1個No 6Yes->13
7個Yes->12
: 這些問題有個特性:
: 對任何兩個數字至少有三個問題兩者恰出現其中之一
: 因此對任何一個數字恰錯一題的答案對其他數字至少錯兩題
: 所以只要一個一個對答案對過去 恰錯一題的數字就是它了
: ---
: 這題目和所謂的容錯/糾正碼有關
: 如果把在七個問題裡回答是或否標記成 1 或 0 的話
: 這便是要我們尋找一個編碼 使得它能夠發現且修正單一 bit 的錯誤
: 上面給的答案使用的是 Hamming(7,4) 編碼
: http://en.wikipedia.org/wiki/Hamming(7,4)
: 它使用 7 bits 來編碼 4 bits 的資訊
: 使得當這 7 bits 中有不多於 1 bit 的錯誤時能夠發現並修正它
: 這個題目範圍是 1 ~ 13 正好是 4 bits 的資訊
: 所以套用這個編碼就成了這個答案了
: (仔細看的話, 第 3,5,6,7 四個問題組合起來正好是各數字的二進位
: 也就是正好是 Hamming(7,4) 當中的資料位)
: 使用 Hamming 編碼能夠以 2^m-1 bits 來編碼 2^m - m - 1 bits 的訊息
: 以發現且修正單一 bit 的錯誤
: 這類型的編碼通常是在通訊理論上使用 減少通道雜訊影響傳輸正確性
: 其中一種很常用的編碼 Reed-Solomon 編碼 (比 Hamming 更強 它能修正更多 bit)
: 廣泛使用在諸如 RAID 6, QR code, DVD/藍光光碟, WiMAX 等地方
--
: 原題目恕刪
: 這裡提供一個問七次可以保證猜中的問法
: (同樣限定恰說謊一次)
: 這七個問題是: 分別詢問是否出現在下列集合當中
: {A,3,4,6,8,T,K}
: {A,2,5,6,8,J,Q}
: {8,9,T,J,Q,K}
: {A,2,4,7,9,T,Q}
: {4,5,6,7,Q,K}
: {2,3,6,7,T,J}
: {A,3,5,7,9,J,K}
看了一下用數學的特性寫出來應該比較容易理解
Q1{A, 9, 11,12,13}
Q2{ 2, 5,6, , 9, ,12,13}
Q3{ 2, 7,8,9,10,11, ,13}
Q4{ 3, 5, ,7, 9,10, ,12,13}
Q5{ 3, 6, ,8, ,11,12,13}
Q6{ 4,5, , ,8, 10, ,12,13}
Q7{ 4, ,6,7, , 10,11,12,13}
7個No->A
6個No 1Yes->2,3,4(可由yes位置判斷答案)
5個No 2Yes->A,5,6,7,8(可由yes位置判斷答案)
4個No 3Yes->2,3,4,9,10,11(可由yes位置判斷答案)
3個No 4Yes->5,6,7,8(可由yes位置判斷答案)
2個No 5Yes->9,10,11,12(可由yes位置判斷答案)
1個No 6Yes->13
7個Yes->12
: 這些問題有個特性:
: 對任何兩個數字至少有三個問題兩者恰出現其中之一
: 因此對任何一個數字恰錯一題的答案對其他數字至少錯兩題
: 所以只要一個一個對答案對過去 恰錯一題的數字就是它了
: ---
: 這題目和所謂的容錯/糾正碼有關
: 如果把在七個問題裡回答是或否標記成 1 或 0 的話
: 這便是要我們尋找一個編碼 使得它能夠發現且修正單一 bit 的錯誤
: 上面給的答案使用的是 Hamming(7,4) 編碼
: http://en.wikipedia.org/wiki/Hamming(7,4)
: 它使用 7 bits 來編碼 4 bits 的資訊
: 使得當這 7 bits 中有不多於 1 bit 的錯誤時能夠發現並修正它
: 這個題目範圍是 1 ~ 13 正好是 4 bits 的資訊
: 所以套用這個編碼就成了這個答案了
: (仔細看的話, 第 3,5,6,7 四個問題組合起來正好是各數字的二進位
: 也就是正好是 Hamming(7,4) 當中的資料位)
: 使用 Hamming 編碼能夠以 2^m-1 bits 來編碼 2^m - m - 1 bits 的訊息
: 以發現且修正單一 bit 的錯誤
: 這類型的編碼通常是在通訊理論上使用 減少通道雜訊影響傳輸正確性
: 其中一種很常用的編碼 Reed-Solomon 編碼 (比 Hamming 更強 它能修正更多 bit)
: 廣泛使用在諸如 RAID 6, QR code, DVD/藍光光碟, WiMAX 等地方
--
Tags:
拼圖
All Comments

By Hazel
at 2010-10-21T01:09
at 2010-10-21T01:09

By Damian
at 2010-10-23T10:01
at 2010-10-23T10:01
Related Posts
寫不完的作業

By Oscar
at 2010-10-20T13:33
at 2010-10-20T13:33
該挑飛躍2000還是飛躍2010拼圖?

By Lucy
at 2010-10-20T01:21
at 2010-10-20T01:21
猜牌的遊戲

By James
at 2010-10-19T14:08
at 2010-10-19T14:08
猜牌的遊戲

By Eartha
at 2010-10-19T10:40
at 2010-10-19T10:40
切割長方形

By Megan
at 2010-10-18T19:57
at 2010-10-18T19:57