✔ 最佳答案
其實這個遊戲不難的,不過你要認識一些關於二進數和密碼學,最基本的知識,就是假設你知道一個數的二進數的表達式,你就可以知道這個數的數值。
考慮這一個遊戲,現在你在心裏想一個0 - 15的數字,選15是因為它只有4個位。
現在我問你四個問題
請問你這個數字的二進數值的第一個bit是甚麼?
請問你這個數字的二進數值的第二個bit是甚麼?
請問你這個數字的二進數值的第三個bit是甚麼?
請問你這個數字的二進數值的第四個bit是甚麼?
假設我有齊了這四個答案,我想不知道你在想甚麼都難,是不是?
以上的問題都是可以通過類似OnUrMind的方式來問的
0 2 4 6 8 10 12 14 (Yes/No) (第一個bit是不是0)
0 1 4 5 8 9 12 13 (Yes/No) (第二個bit是不是0)
4 5 6 7 12 13 14 15 (Yes/No) (第三個bit是不是0)
0 1 2 3 4 5 6 7 (Yes/No) (第四個bit是不是0)
看穿了,這遊戲是不是其實很簡單?以上玩法的小缺點就是很容易被看破原理,所以作者把數字做了加密。
假設我有一個mapping,可以把一個數字變一變。
0 7
1 2
2 14
3 12
4 5
5 9
6 6
7 10
8 1
9 13
10 4
11 0
12 15
13 8
14 11
15 3
留意上面的表,右手面是不會重覆的,所以這個mapping的bijective的,所以可以還原。作者只需要把問題都通過這個表對一下就可以了。假設玩家把問題都答完,遊戲只需用二進數計出數值,再使用表,對一對結果就知道用戶心裏想的數值了。