问题标签 [prolog-dif]
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中失败谓词的用途是什么?
我想不出我需要它的情况。
compiler-errors - 为什么这个 prolog 程序不编译?
我有一个序言程序。这些行阻止它编译:
我收到以下错误:
list - 具有多个相同元素的列表的排列Prolog
大家好,请原谅任何对语言的滥用
我需要创建 myPermutation(L1,L2)。给定一个列表 L1(它具有许多连续出现的元素)返回一个列表 L2,它是 L1 排序的方式,没有两个相同的连续元素)
示例:给定列表 L1[1,1,1,1,1,2,2,3,3,4,4,5,5] L2 应该是 [1,2,1,5,1,3,1 ,4,1,2,3,5,4] 我尝试过随机排列并检查每个排列的一致性,但速度很慢(L1 大约 24 cpu,元素超过 12 个)
唯一可能的解决方案是进行一致的排列而不是检查一个,但我该怎么做呢?
即使使用标准序言也可以做到这一点,但由于我对逻辑编程的理解很差,我无法理解它
谢谢 :D
prolog - 从列表中删除简单的 Prolog
(这不是课程作业问题。只是我自己的个人学习。)
我正在尝试在 Prolog 中进行练习以从列表中删除元素。这是我的代码:
当我测试它时,我首先得到了一个很好的答案(即删除了所有的 X。)但随后回溯为我提供了列表的所有其他变体,其中一些或没有删除 X 的实例。
为什么会这样?为什么 H==X 的情况会落入最后一个子句?
prolog - Prolog 查询返回 H128
在下面的查询中,首先我得到X = H128
的是,这是从哪里来的?另外为什么它返回是?是因为变量X
实际上没有定义,我们正在测试那个条件吗?
list - 在Prolog中不统一删除列表的所有成员
在 Prolog 中,如果你这样写:
结果将是:
这是正常的,因为 _ 变量在第一个元素中与 1 绑定,它会搜索 (1,1) 的其他元素并删除它们。
有没有办法防止这种统一发生并删除表单(1,_)的所有成员。在这种情况下,结果必须是:L = [ (3, 4)]。
syntax - Prolog 返回结果
对于家庭作业,所以没有明确的,请:
有没有办法让 Prolog 只返回程序找到的第一个目标,而忽略找到的其他目标?
出于说明目的,给定程序:
有没有办法让程序只返回第一个排列作为它的唯一解决方案?在以下情况下:
我们能不能
作为解决方案?
prolog - Prolog 中的简化旅行推销员
我查看了类似的问题,但找不到与我的问题相关的任何内容。我正在努力寻找一个算法或一组“循环”来找到从CityA
to的路径CityB
,使用
事实。到目前为止,我设法做的事情如下,但它总是回溯write(X),
到最后一次迭代,然后完成,这是我希望它做的,但只是在一定程度上。
例如,我不希望它打印出任何死胡同的城市名称,或者使用最终迭代。我希望它基本上形成一条从CityA
to的路径,在路径上CityB
写下它去往的城市的名称。
我希望有人能帮助我!
prolog - 处理 prolog 上下文无关语法
给定一个 CFG
我想写一个谓词,如语法('S',句子),它产生所有可能的
使用最左推导,如果遇到的符号是终端,它应该打印出那个终端,如果遇到的符号是非终端 'S',它应该回溯并替换语法a S b 或 c 或 d之一并重复过程。
我不想要任何代码......只是帮助我一些技巧如何开始
prolog - Prolog 中的逻辑“非”是什么?
我面临的问题有点微不足道。我想在 Prolog 中不使用逻辑,但似乎这not/1
不是我想要的:
我查询:
而且我没有得到我想要的结果:(