问题标签 [successor-arithmetics]
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.
prolog - prolog 一元数 - 评估表达式
我正在尝试了解 Prolog,但我遇到了以下情况。我以下列方式定义了自然数(一元):
这意味着 0 是 0,s(0) 是 1,s(s(0)) 是 2 等等......
然后我定义谓词添加:
它将两个一元数和结果存储添加到 Z。
现在我有以下谓词“测试”证明了我的问题:
然后在解释中输入:
然后我尝试:
所以第一个参数应该导致 R = s(0),第二个参数是零,所以整个表达式应该被评估为 true,但 prolog 说 false。我想这与这一点有关,即“测试”谓词中的 add(s(0),0,R) 不会评估我的想法。谁能向我解释一下,或者最终提供一些描述这种行为的链接?谢谢你的帮助!干杯。
prolog - prolog 谓词以连续表示法添加 2 个数字并在 Z 中也以连续表示法获得结果
为什么总是导致错误为什么编译器告诉我算术:'s(_2676)' 不是函数
recursion - Prolog 上的递归
我正在尝试编写一个 Prolog 递归,它将返回以下数字表示:
1 --> s(0)
2 --> s(s(0))
3 --> s(s(s(0))) ...
我使用了以下代码:
但是当我尝试运行预测时:
我得到结果 A=0,如果我继续,我会收到超过卡住限制的错误。我期待得到一个结果 A = s(s(0))。我还尝试添加额外的停止条件:retnum(0,0)。
知道我的错误在哪里以及是否有更好的方法吗?
recursion - 如何解决这个递归加法?
我是逻辑编程和 Prolog 的新手。下面的 Prolog 程序定义了一个谓词add/3
,用于将第一个参数与第二个参数相乘,从而得到第三个参数,基于方程x + y = z等价于 ( x - 1) + y = ( z - 1) :
但是这个查询,应该解决方程 1 + 0 = z,不返回预期的结果 ( 1
):
如何解决这个递归加法?
prolog - 如何在所有参数模式的后继算术中实现阶乘序列?
以下 Prolog 程序定义了一个谓词fact/2
,用于在后继算术中计算整数的阶乘:
它适用于此参数模式下的查询:
它也适用于这种参数模式下的查询:
它也适用于这种参数模式下的查询:
但它会在这种参数模式下通过查询耗尽资源:
如何在所有参数模式的后继算术中实现阶乘序列?
prolog - 如何在所有参数模式的后继算术中实现斐波那契数列?
以下 Prolog 程序定义了一个谓词fib/2
,用于在后继算术中计算整数的斐波那契数:
它适用于此参数模式下的查询:
它也适用于这种参数模式下的查询:
它也适用于这种参数模式下的查询:
但它会在这种参数模式下通过查询耗尽资源:
如何在所有参数模式的后继算术中实现斐波那契数列?
python-3.x - 你能帮我用 Python 做这个系列吗?
我需要打印这个系列的结果:2、4、7、28、33、198...
当 x 为 1 时,结果应为 2
当 x 为 2 时,结果应为 4
当 x 为 3 时,结果应为 7
等等
我有这个,但它不工作:
prolog - Prolog - 使用谓词的阶乘
我必须编写一个谓词,它计算给定数字的阶乘。目标是仅使用谓词,而不是内置的序言算术。
阶乘(N,X) - 其中 X = !N
例如必须如何在不同的谓词(两个数字的总和)上完成:
我尝试了多次,但我找不到解决方案。谢谢您的回答。