问题如下:
通过分别用1,2,9和6替换单词CARE中的每个字母,我们形成一个平方数:1296 = 36 ^(2).值得注意的是,通过使用相同的数字替换,anagram,RACE,也形成一个平方数:9216 = 96 ^(2).我们将CARE(和RACE)称为方形字谜词对,并进一步指定不允许前导零,不同字母也不能与另一个字母具有相同的数字值.
使用words.txt(右击和'保存链接/目标为...'),一个包含近两千个常用英文单词的16K文本文件,找到所有方形字谜词对(一个回文词不被认为是一个自己的字谜).
这样一对中任何一个成员形成的最大平方数是多少?
注意:形成的所有字谜必须包含在给定的文本文件中.
我不明白CARE到1296的映射?这是如何运作的?或者是所有排列映射都要尝试,即所有字母都是1-9?
允许所有数字到字母的分配.所以C = 1,A = 2,R = 3,E = 4将是一个可能的分配...除了1234不是正方形,所以这是不好的.
也许另一个例子有助于说清楚?如果我们指定A = 6,E = 5,T = 2,则TEA = 256 = 16 2,EAT = 625 = 25.所以(TEA = 256,EAT = 625)是一个方形的字谜词对.
(仅仅因为允许所有数字到字母的分配,并不意味着实际尝试所有这些分配是解决问题的最佳方法.可能还有其他一些更聪明的方法.)