Java-和式游戏的算法:可以使用多分支递归进行设计
pot + pan = bib
dog + cat = pig
tom + jerry = jacky
tommy + jerry = happy
boy + girl = babay
根据给定的这些字符规则设计一种算法,任意输入两个单词输出第三个单词。你可以给这些已有的字符赋值比如p=0, o=1, t=2, n=3...以找出它们之间的相互对应关系,已使用的字符只能有一种值,但是没有出现的字母你可以赋任意的值,需要说明的是这些单词并不代表任何含义...如:pig + dog = ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
穷举法,很久以前做过一个字母填数的问题,不过那个只有一个算式。换成多个算式差别并不本质。
从第一个等式的第一个字母开始,依次穷举每个字母填入的数。每次填入之后,检查所有的等式看是否:
1. 产生矛盾,回溯
2. 能计算出其他某个或某些字母的值,将这些字母的值算出并重新检查
3. 所有字母都已排列成功,所有结果都满足条件,结束
算法的复杂程度取决于计算其他字母值和判断矛盾的部分,比如是否处理a3b + c4d = e9c这种情况为矛盾(b + d最多进1)等。
上面的顺序可以改成更加科学的顺序:从所有的个位开始穷举,再到所有的十位,再到所有的百位。这样进位的不确定度比较小。