【问题标题】:Is there a possible implementation for this problem? [duplicate]这个问题有可能的实现吗? [复制]
【发布时间】:2020-04-06 05:52:18
【问题描述】:

在进行研究并尝试在 PROLOG 中解决此问题时遇到了一些麻烦。我必须实现一个能够解决任何可能的密码谜题的密码谜题求解器。我将在下面更详细地解释。

给定一个包含可变数量元素(至少 3 个)的列表作为输入,例如 [send, more, money] 相当于 SEND+MORE=MONEY,实现一个输出适当消息的程序。如果输入有解决方案,程序将输出分配给每个字符的数字列表或每个字符被其分配的数字替换的表达式。

我感谢所有答案,但我更希望获得完整的答案。从我过去的经验中,我了解到,如果我看到一个完整的解决方案,我会更好地理解事情,这样我就可以逐行跟踪它,看看是什么让解决方案生效。

【问题讨论】:

  • 不,不幸的是,这并不能真正回答我的问题,我相信像“一个简单的搜索会立即[...]”这样的结构被认为是不友好的,如下所示:stackoverflow.com/conduct#unfriendly-language我很感激你输入,但不幸的是,这并没有真正帮助。我已经看到了这个问题,但我在那里找不到关于我的问题的答案。希望澄清。
  • @Hachiko1337 好的,在这种情况下,最好打开一个新问题,在其中发布实际代码以便开始讨论。还尝试发布代码来演示问题。理想情况下使用此处描述的测试框架:plunit。开始需要一点时间,但一旦你开始,这是值得的。 Programmers Love Writing Tests(不过那是用于 Java 的)。
  • here 是标记为重复的链接条目中的一个简单答案(那里还有更高级的其他答案),它直接回答了这个问题 AFAICT,并带有一个有效的可运行代码。如果您在修改该代码以满足您的特定需求时遇到问题,请不要犹豫,发布带有具体细节的新问题。

标签: prolog logic clpfd cryptarithmetic-puzzle


【解决方案1】:

这是一部很棒的经典作品。

查看基于CLP(FD)library(clpfd): CLP(FD): Constraint Logic Programming over Finite Domains的解决方案

或(随机选择)this page 上的经典代码,其中还包含 CLP(FD) 示例,但使用的是 ECLiPSe 求解器。

【讨论】:

  • 我会掩饰这些页面,谢谢您的意见。
猜你喜欢
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
相关资源
最近更新 更多