问题标签 [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 投票
2 回答
1095 浏览

prolog - 给字母分配数字

我正在尝试解决密码学问题(将数字分配给字母)

杰拉德 + 唐纳德 = 罗伯特

每个字母代表一个不同的数字(0 到 9 之间)。每个单词的第一个字母代表一个不为 0 的数字。

问题 :

该软件不显示错误,也不显示解决方案。

0 投票
4 回答
6914 浏览

prolog - 如何在 Prolog 中解决密码学难题

我必须编写一个 Prolog 程序来解决一个密码难题。

我需要编写一个函数 solve([A, M, P, D, Y]) 将变量 [A, M, P, D, Y] 分配给从 0 到 9 的值,以便满足等式 AM+PM =天。每个变量被赋予不同的值,A、P、D 不能等于 0。

我开始编写这个函数,但是在运行我的程序时遇到了问题。我将 A、P 和 D 的限制设置为不为零。当我浏览算法时,我意识到 D 必须为 1,所以我在程序的开头定义了它。我为 M 定义了两个不同的变量(M1 和 M2)并将它们设置为彼此相等,因为拼图中的不同 M 应该分配给相同的值。我将位置分配给不同的变量,并根据谜题将它们相加。我解释了任何变量携带进位变量。我的程序编译但函数没有执行。

我究竟做错了什么?我的变量定义有问题吗?我需要定义两个不同的 M 变量,还是一个就足够了?

0 投票
3 回答
5896 浏览

math - 如何找到密码字母值?

十字路口 + 道路 = 危险 ==> 答案是 ==> 96233 + 62513=158746

我正在寻找一个说明,以便更容易地找到另一个示例的答案。我的一位老师说我们可以用树来找到它。但有时使用树来找到答案是不可能的。

你通常如何找到你的密码解决方案?

0 投票
2 回答
961 浏览

sql - 使用关系数据库解决密码算术难题

假设给你一个密码算术难题:

发送 + 更多 = 金钱

目标是用数字 (0-9) 代替字母,以便加法有效。

我了解如何在数学上解决这个问题,但我不确定如何使用关系数据库来解决这个问题。

如何设计模式来解决这个问题?

尝试解决此问题的 SQL 查询看起来如何?

编辑: 有一些限制:

  1. 给定的字母应始终使用相同的数字。例如,如果您猜测字母 E 是“5”,那么 E 应该在它出现的所有位置都得到值“5”。
  2. 不同的字母应该有不同的数字,例如,您不能将“4”分配给 E 和 M。
  3. 所有数字(单词)都不能有任何前导零
0 投票
1 回答
378 浏览

prolog - 密码的执行时间

在初学者课程中,我们被要求在 Prolog 中做一些经典的密码。它们都可以工作,除了这个,它只是继续下去,没有找到任何解决方案,除了试图让我的电脑因过热而炸毁:

四十 + 十 + 十 = 六十

所有数字到数字的不等式都是用这个 python 编写的,以防止人为错误:

这里没有写的是一系列十个简单的事实(数字(0)。到数字(9)。)断言0-9是数字。

有人能发现一个明显的错误吗,或者真的需要十多分钟,而更简单的六位数密码可以立即解决?

谢谢!

0 投票
3 回答
2048 浏览

c - 为以下密码/字母谜题寻找蛮力算法

我正在尝试用 C 编写一个程序来解决以下密码

+=

是素数

是一个完美的正方形

也就是说,我需要找到单词onetwoSevenNine的数值,其中每个字母(o、n、e、t、w、s、v、i)都被分配了一个数值,并且完整的数字也满足以上所有条件。

我正在考虑为每个单词创建一个 int 数组,然后 1)检查每个单词是否满足条件(例如“七”的质数),然后 2)检查数组中的每个整数是否一致与其他词的值,其中其他词也被发现满足各自的条件。

虽然我真的看不到这个工作,因为我必须在每次迭代中不断地将 int 数组转换为单个 int,然后我不确定如何同时将数组中的每个元素与其他词匹配。

也许知道每个单词必须为真的 MIN 和 MAX 数值范围会很有用?

有任何想法吗?

0 投票
1 回答
315 浏览

prolog - C1 在 polog 中的密码谜题中是什么意思?

这是序言中的一段密码算法

如下解释

我真的不明白C1是什么意思sum1( [D1|N1], [D2|N2], [D|N], C1, C, Digs1, Digs),因为C2代表右进位,C代表左进位,那么C1代表什么?

0 投票
3 回答
2128 浏览

math - 用 C++ 制作一个密码求解器

我正在计划一个 C++ 程序,它需要 3 个字符串来表示一个密码谜题。例如,给定 TWO、TWO 和 FOUR,程序将找到每个字母的数字替换,使得数学表达式

是真的,假设输入是正确的。解决这个问题的一种方法当然是暴力破解,用嵌套循环为每个字母分配每个可能的替换,反复尝试求和等等,直到最终找到答案。

我的想法是,尽管这非常低效,但底层的循环检查可能是一种可行的(甚至是必要的)方法——在执行一系列推论以限制每个变量的域之后。我发现它有点难以想象,但首先假设这样的一般/填充结构是否合理(每个 X 代表一个不必要的不​​同数字,每个 C 是一个进位数字,在这种情况下,将是 0 还是 1)?:

考虑到这一点,还有一些规划思路:

- 尽管问题中不会给出前导零,但我可能应该在适当的地方添加足够的零,以使事情变得均匀/匹配操作数。

- 我想我应该从每个字母的一组可能的值 0-9 开始,可能作为向量存储在“域”表中,并在进行扣除时从中消除值。例如,如果我看到一些像这样排列的字母

,我可以说 C 为零,这消除了其域中的所有其他值。我可以想出不少推论,但将它们推广到各种小情况并放入代码中,乍一看似乎有点棘手。

-假设我有一系列很好的推论可以贯穿事物并从域表中引导出许多值,我想我仍然会遍历所有内容并希望状态空间足够小以合理地生成解决方案多少时间。但感觉必须有更多的东西!- 也许一些聪明的方程式要建立或类似的东西。

提示表示赞赏!

0 投票
2 回答
9457 浏览

java - 解决简单密码算术难题的Java程序

编辑:我的程序现在可以工作了,但仍然需要else if (400*T + 40*O + 4*O == 1000*G + 100*O + 10*O + D)对解决难题的关键部分进行一些澄清。我只是想完全理解程序的每一点,谢谢。

这仅用于审查目的,我花了几个小时试图弄清楚。我要么让变量全为零,要么是一个无限循环。这是一个问题,因为它写在书中:

“在密码谜题中,数学方程式是用字母写的。每个字母可以是从 0 到 9 的数字,但没有两个字母可以相同。这是一个示例问题:SEND + MORE = MONEY 谜题的解决方案是 S = 9,R = 8,O = 0,M = 1,Y = 2,E = 5,N = 6,D = 7。编写一个程序,找到以下密码难题的解决方案: TOO + TOO + TOO + TOO = GOOD 最简单的技术是对每个唯一字母(在本例中为 T、O、G、D)使用嵌套循环。循环将系统地为每个字母分配从 0 到 9 的数字。例如,它可能首先尝试 T = 0, O = 0, G = 0, D = 0 然后 T = 0, O = 0, G = 0, D = 1 然后 T = 0, O = 0, G = 0, D = 2等,直到 T = 9、O = 9、G = 9、D = 9。在循环体中,测试每个变量是否唯一并且满足等式。输出满足等式的字母的值。”

如您所见,我尝试将所有 for 循环放在一个 while 循环中以控制所有内容,这是我修复的众多尝试之一。它(根本)不起作用,所以我将其注释掉。

0 投票
1 回答
3597 浏览

cryptarithmetic-puzzle - 简单的密码谜题

我正在寻找一种方法来解决这个密码算术问题:

可能还有其他人,其中每个字母代表一个数字。

您将如何手动解决这个问题,这与以编程方式解决它有什么关系?

先感谢您