先给大家看两个“单词等式”:
ACT + DEAL = DONE
COIN + TRY = DIAL
除了意义上说得通以外,从另外一个角度来看,这两个等式也是成立的。大家能猜到是什么吗?
答案是:这两个等式真的就是成立的——如果把单词看作 36 进制数的话。把 ACT 转换成 10 进制就是 13421 ,把 DEAL 转换成 10 进制就是 625053 ,而 DONE 的 10 进制正好就是 638474 。类似地, COIN 加 TRY 也真的等于 DIAL ,对应的 10 进制算式为 591647 + 38590 = 630237 。
其实,蛋疼的数学家们已经干过类似的事情了。数学家们对质数的热爱如此疯狂,以至于他们甚至搞出了一份质数单词表。最近我偶然看到 N 年前自己的一篇罗列质数单词的日志,立即想到了这个更蛋疼的主意——单词等式。于是写程序小小地搜索了一下,很快便出现了上面两个式子。
我把 ACT + DEAL = DONE 加上引号拿到 Google 里去搜,没有结果。哈哈,似乎我是第一个蛋疼到想要研究这种 36 进制单词等式的人。于是我用 Mathematica 写了一个程序,在所有字母个数为 3 到 5 的常用单词中寻找等式:
minWordNetID[word_] :=
If[Head[WordData[word, "WordNetID"]] === WordData, [Infinity],
Min[FromDigits[#, 10] & /@
WordData[word, "WordNetID"][[All, 2]]]];
v = DictionaryLookup[RegularExpression["[a-z]{3,5}"]];
v = Select[v, minWordNetID[#] < 10000000 &];
n = Sort[FromDigits[#, 36] & /@ v];
partiton[word_] := {BaseForm[#, 36],
BaseForm[FromDigits[word, 36] - #, 36]} & /@
Intersection[FromDigits[word, 36] - n, n];
result = {#, partiton[#]} & /@ v;
result = Select[result, Length[#[[2]]] > 0 &];
TableForm[result]
人工筛选有意义的等式并不是一件容易的事。我找到了下面三个很漂亮的单词等式:
MAP + LOOP = MAZE
DYE + BLADE = BLOBS
MAN + ROAR = SALE
另外还有一些不那么好的单词等式,我也写出来吧:
BUG + BUG = NOW
SHOWN + BLUR = STARE
ACT + HEAR = HONK
我也尝试过搜索字母更多的单词等式,以及包含乘法的单词等式,但结果数量极少,很难出现意义正好也相符的式子。我有没有错过什么更为绝妙的单词等式呢?欢迎蛋疼的网友们也来找一找。
原来mathematica还自带英汉小词典~~
MAP + LOOP = MAZE
这个我喜欢。。
v = Select[v, minWordNetID[#] < 10000000 &];
“WordNetID”是什么,为什么选取小于10000000的?
MAP + LOOP = MAZE 這個漂亮
看不懂啊
36进制?为什么是36进制?
A-Z 26个字母是怎么映射成36进制的数的??
A:0 B:1 … Z:25???
我明白了,A:10 B:11 … Z:35,这样对了吧?
这真是非凡的蛋疼啊
自動生成。。。
36进制是因为在大于10的进制中,一般的做法是从10起用拉丁字母,所以36进制有36个数字:0,1,2,…,9,A,B,…,Z
好无聊…
deal都快忘记是什么意思了..
说话这些单词缺乏普及性,很多人认不全一句的单词.我敢肯定.
蛋疼的去研究汉字的65536进制的等式吧,哈哈。
另外这个世界某个时候开始会不会废除10进制改用其它的啊?
那个啥,我觉得算找这种东西用sql之类的语言比较好用。。
不过字典估计就没办法处理了
另外估计26进制可能更好些?
嗯,matrix67的情书2
bug这个很好很强大
bra + and = men 震惊了。
还有一个很有意思 ask + lie = way
我小时候拿单词当26进制玩,哈哈
前来围观头像!!!T_T
MAN + ROAR = SALE
这个经典~~~~~哈哈
哈哈 不错的
很有意思 ask + lie = way