问题标签 [cryptarithmetic-puzzle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
229 浏览

clojure - 在 core.logic Clojure (CLP) Cryptoarithmetic 中使用 apply

上面的示例不起作用,因为applyfd/eq. 以下版本send-more-money-solutions有效,因为我不使用apply. 我需要使用apply泛化解决方案来处理不同长度的任意字符串。

我应该怎么办?(对于上面,我有一个想法,我可以编写一个宏(虽然还不确定如何),但实际上我需要能够使用作为逻辑变量序列的变量。如下所示)

错误消息看起来像

我认为宏中发生了一些奇怪的事情,fd/eq所以我应该尝试不使用eq宏。

谢谢大家!

0 投票
2 回答
209 浏览

prolog - 使用 CLPFD 库的加密算术难题求解器

我已经看到了一些使用 Prolog 的 clfpd 库的 cyrptarithmetic 谜题求解器的例子。例如,如果我有一个谜题 AM + PM = DAY,它可以将不同的值集从 0 到 9 分配给不同的字母,这样 A*10+M + P*10+M = D*100+A*10+Y . 我正在尝试编写它的通用版本。请注意,我对 Prolog 或 clfpd 的经验都很少。

我打算根据输入生成约束。例如 A*10+M + P*10+M = D*100+A*10+Y 将根据输入拼图 1([A,M]+[P,M]=[D,A,Y ])。但我不知道该怎么做。我编写了一个基于输入创建约束的 Prolog 函数(称为转换)。但它不工作,我不断收到错误

有人可以引导我走向正确的方向。

0 投票
3 回答
95 浏览

python - 在 Python 中编写多个条件是否有不同的方法?

我是 python 新手,我正在做 TWO + TWO = FOUR,其中每个字母代表 1-10 的不同数字。我需要找到所有组合。我想知道是否有更好的写法,尤其是'if'和'for'

我试过这样写,但它给了我超过 7 个结果

0 投票
1 回答
159 浏览

prolog - 这个问题有可能的实现吗?

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

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

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

0 投票
0 回答
154 浏览

eclipse - 密码算术难题帮助:SANTA-CLAUS=XMAS

我正在尝试解决密码算术难题:ECLIPSE Prolog 中的 SANTA-CLAUS=XMAS。我使用拼图“SEND+MORE=MONEY”作为指导。我的问题是我不确定如何实现减法的“借用”部分。此外,当您继续添加时,可以将其添加到下一个术语中。但是在减法中,我们必须借用并从您借用的数字中减去十。以下是我用作指南的加法拼图的代码:

我只需要帮助了解如何在减法中实现借用。

0 投票
3 回答
250 浏览

recursion - 在 Common Lisp 中使用递归“查找数字”问题的意外结果

寻找数字问题”是这样的:

为了在 Common Lisp 中使用递归来解决它,我编写了以下代码:

传递的结果 ( lst) 是(9 9 9)

预期结果 ( lst) 是(9 8 1)意义A=9, B=8C=1因此等式CCC + BBB + AAA = CAAB成立,即

我应该更改代码的哪些部分以提供预期的结果?有人可以修复代码吗?请注意,必须使用递归。只有一行递归就足够了,例如;; recursion happens here注释所在的行。

修复此代码的最小编辑是什么?

0 投票
2 回答
82 浏览

prolog - 如何编写 Prolog 求解器来解决这个逻辑问题?

我花了一些时间学习 Prolog,并对 Prolog 的概念有一些基本的了解,例如事实、规则、列表。但是仍然很难使用 Prolog 作为解决逻辑问题的工具。比如下面这个:

我手动解决了这个问题,答案是9013。如何编写Prolog问题来解决这个问题?现在,出于学习目的,我不喜欢使用任何模块。

0 投票
1 回答
59 浏览

algorithm - 是否可以使用不需要蛮力的代码找到此序列中的第 n 个数字?

我被问到这个问题,我被要求找到序列中的第 N 个数字。顺序如下 555 35 1315 11131115 31133115 1321232115。

序列是字符串中每个字符的计数。假设我从 555 开始,那么由于我有 3 次出现“5”,下一个数字将是 35。同样,因为我有一次出现 3,一次出现 5,所以下一个数字将是 1315。

现在,有人问我这个问题,我必须在输入是任何随机数的情况下获得此类序列的第 n 个数。我建议了一种蛮力方法,或者如果有一组固定的数字,那么我们可以缓存结果。我想知道是否有更好的编码方法?或者是否有针对此类问题陈述的现有算法?