估數字原理

2009-02-05 5:40 am
估數字OnUrMind原理

回答 (1)

2009-02-09 5:00 pm
✔ 最佳答案
其實這個遊戲不難的,不過你要認識一些關於二進數和密碼學,最基本的知識,就是假設你知道一個數的二進數的表達式,你就可以知道這個數的數值。
考慮這一個遊戲,現在你在心裏想一個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的,所以可以還原。作者只需要把問題都通過這個表對一下就可以了。假設玩家把問題都答完,遊戲只需用二進數計出數值,再使用表,對一對結果就知道用戶心裏想的數值了。
參考: 從不抄襲。


收錄日期: 2021-04-23 18:13:30
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090204000051KK02408

檢視 Wayback Machine 備份