FORTY + TEN + TEN = SIXTY 求解過程
代碼:
forty
..ten
..ten
------
sixty
這是一個智力測驗問題,各位可以玩玩看
萬位數: f, s
千位數: i, o
百位數: r, t, x
十位數: t, e
各位數: y, n
進行加法, (FORTY + TEN + TEN = SIXTY )
求出這十個英文字分別對應哪一個阿拉伯數字?
Decimal Adding:
{F,S,I,O,R,T,X,E,Y,N} ==> {0,1,2,3,4,5,6,7,8,9}
求 1:1 Mapping 解
下面是解答過程,我不知道是不是「唯一解」,
不過這個求解過程和結果是對的;
各位有空,可先自己算算玩玩看!
假設 {e, f, i, n, o, r, s, t, x, y} <= 1 vs 1 mapping to => {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
不重複 (not duplicated) && 一對一映對 (1 vs 1 Finite Mapping) && 十進位運算 (Decimal Adding)
Question:
=> 求這十個「英文」字分別對應哪一個「數字」?
先從個位數和十位數開始
y + 2n = y ... (1)
t + 2e = t ... (2)
所以 2n 和 2e 一定是 0 或者 10
不過如果 2n 是 10 就會進位,
導致 (2) 不成立,所以一定是 2n == 0, 2e == 10
得到
n == 0
e == 5
代碼:
forty
++t50
++t50
------
sixty
接著來看萬、千、百這三位數
因為數字和英文是 1 vs 1 有限域映對
所以 s 和 i 一定是進位而來
而,我們可以推斷
「百位的最大進位」一定是 10 或 20 因為 9*3 = 27
「千位的最大進位」一定是 10 因為 9*2 = 18
所以,目前我們列有下列的式子 (3.1)+(4.1)+(5) 和 (3.2)+(4.2)+(5) 有一個組合會成立!
r + 2t + 1 = x + 10 ... (3.1)
r + 2t + 1 = x + 20 ... (3.2)
o + 1 = i + 10 ... (4.1)
o + 2 = i + 10 ... (4.2)
f + 1 = s ... (5)
我們剩下 1 2 3 4 6 7 8 9
所以 (4.1) 一定不成立,因為 i 不為 0,則 o 一定要大於等於 10
所以 (4.2) 成立,成立我們得到 o == 9 && i == 1
且 (3.2) 同時也成立,百位進二
代碼:
f9rty
++t50
++t50
------
s1xty
我們剩下 2 3 4 6 7 8 和兩條式子要解...
r+2t-x = 19 ... (3.2): r+2t 一定是大數目, 6/7, 7/8, 8/7 才有辦法看到 19 這個數字
f+1 = s ... (5): f/s 一定是連續的序列 2/3, 3/4, 6/7
先假設運算這個組合 {f/s=2/3} 來計算 (3.2) r/t={6/7, 7/8, 8/7}}
6+14 - x = 19 => x = 1 ... False! 與 i == 1 重複
8+14 - x = 19 => x = 3 ... False! f/s=2/3 上升序列重複
7+16 - x = 19 => x = 4 ... TRUE!! 所以 r == 7, t == 8, x == 4 成立!
代碼:
2978y
++850
++850
------
3148y
剩下一個 6,得出答案
代碼:
29786
++850
++850
-------
31486
forty+ten+ten=sixty.jpg
________________
美術插畫設計案子報價系統 v0.1 Beta
爪哇禾雀
|