Java-和式游戏的算法:可以使用多分支递归进行设计

发布于 2016-11-19 05:33:40 字数 278 浏览 1362 评论 1

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏爱自由 2017-05-08 02:31:58

穷举法,很久以前做过一个字母填数的问题,不过那个只有一个算式。换成多个算式差别并不本质。

从第一个等式的第一个字母开始,依次穷举每个字母填入的数。每次填入之后,检查所有的等式看是否:
1. 产生矛盾,回溯
2. 能计算出其他某个或某些字母的值,将这些字母的值算出并重新检查
3. 所有字母都已排列成功,所有结果都满足条件,结束

算法的复杂程度取决于计算其他字母值和判断矛盾的部分,比如是否处理a3b + c4d = e9c这种情况为矛盾(b + d最多进1)等。
上面的顺序可以改成更加科学的顺序:从所有的个位开始穷举,再到所有的十位,再到所有的百位。这样进位的不确定度比较小。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文