您当前的位置:首页 > 学习 > 阅览室

蛋疼研究之单词等式

时间:11-25来源:作者:点击数:

先给大家看两个“单词等式”:

ACT + DEAL = DONE

COIN + TRY = DIAL

除了意义上说得通以外,从另外一个角度来看,这两个等式也是成立的。大家能猜到是什么吗?

答案是:这两个等式真的就是成立的——如果把单词看作 36 进制数的话。把 ACT 转换成 10 进制就是 13421 ,把 DEAL 转换成 10 进制就是 625053 ,而 DONE 的 10 进制正好就是 638474 。类似地, COIN 加 TRY 也真的等于 DIAL ,对应的 10 进制算式为 591647 + 38590 = 630237 。

其实,蛋疼的数学家们已经干过类似的事情了。数学家们对质数的热爱如此疯狂,以至于他们甚至搞出了一份质数单词表。此前的一篇罗列质数单词的日志,立即想到了这个更蛋疼的主意——单词等式。于是写程序小小地搜索了一下,很快便出现了上面两个式子。

我把 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

我也尝试过搜索字母更多的单词等式,以及包含乘法的单词等式,但结果数量极少,很难出现意义正好也相符的式子。我有没有错过什么更为绝妙的单词等式呢?欢迎蛋疼的网友们也来找一找。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门