问题标签 [zebra-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.
prolog - 使用 prolog 解决船舶难题
我需要使用 prolog 解决以下问题。
这些是提供的事实。
我在网上搜索,但我无法找到 prolog 的解决方案。
那么如何用prolog解决这个问题呢?
谢谢你。
prolog - 为什么我无法通过 Prolog 获得 Ship Puzzle 的答案?
我需要使用 Prolog 来解决 Ship Puzzle 问题。以下是事实。
有5艘船。
- 希腊船六点出发,载着咖啡。
- 中间的船有一个黑色的烟囱。
- 英国船九点出发。
- 带有蓝色烟囱的法国船在运送咖啡的船的左侧。
- 载可可的船的右边是一艘前往马赛的船。
- 这艘巴西船正驶向马尼拉。
- 载米的船旁边是一艘带有绿色烟囱的船。
- 一艘去热那亚的船五点出发。
- 西班牙船七点出发,在前往马赛的船的右侧。
- 带有红色烟囱的船前往汉堡。
- 七点出发的船旁边是一艘带白色烟囱的船。
- 边境的船载着玉米。
- 黑烟囱的船八点出发。
- 运送玉米的船停泊在运送大米的船旁边。
- 六点开往汉堡的船。
哪艘船去塞得港?哪艘船运茶?
我在互联网上搜索答案,但我找不到任何答案。所以我参考了“斑马拼图”,因此我为这个问题安排了代码。所以这是我的Prolog代码的问题。
但是当我运行程序时,它会说“假”。
那么我该如何解决呢?
谢谢你
owl - 用 Stardog 推理机解决爱因斯坦之谜?
是否有可能用Stardog推理机解决爱因斯坦的谜语(又名斑马谜题)?即以下查询不会产生预期的结果einsteins_riddle_en:Old_Gold
prolog - Prolog if else 语法
我似乎无法让我的 if else 语句起作用。
- 约翰、弗雷德和哈里是男性,玛丽、朱莉、苏珊和安妮是女性。
- 约翰有一头金发,而弗雷德和哈利有一头黑发。
- 朱莉和苏珊是金发女郎,玛丽和安妮是黑发女郎。
- Rich 是每个拥有黄金的人——在我们的例子中是 Fred 和 Julie。
- 男性只喜欢女性,反之亦然。此外,约翰和哈利喜欢有钱人,约翰喜欢金发女郎,弗雷德喜欢黑发女郎。
- 玛丽和朱莉都喜欢黑头发的人,朱莉同时也喜欢有钱人。
我认为(语句)->(如果为真,则运行此语句);(如果为假,则运行此语句)。在 Prolog 中是正确的方法。为什么不管我写什么
它返回true?
prolog - Prolog 中的“建筑”之谜
我正在尝试解决 Prolog 中的一个谜语。谜底是:有两栋楼,每栋都有树公寓(每层公寓):一套3室,一套4室,一套5室。
Dana、Joni 和 Noah 住在 1 号楼。Ron、Gale 和 Aron 住在 2 号楼。
Joni 的公寓比 Dana 和 Noah 高。这意味着他住在 1 号楼的三楼。诺亚和盖尔住在同一层(在不同的建筑物中)。Ron 比 Aron 多一个房间。罗恩住在盖尔楼上。2号楼最高的公寓是5室公寓。
我需要找出每个人住在哪一层。
我写了这段代码:
但是当我执行查询时:
我得到:
任何人?我不明白我做错了什么。
logic - 在 DLV/Prolog 中映射谓词和命题
我无法理解如何做某事
想象一下,我有 3 头驴,每头驴都有最喜欢的布,并在它最喜欢的游乐场玩耍。
如果我给这些驴子限制哪个操场可能是它最喜欢的操场,例如操场 A、B 或 C,或者甚至通过诸如 Donkey humphey 最喜欢的布绝对不是T 恤我该怎么做。
IE 到目前为止我的想法是
我使用 dlv 作为我的答案集求解器
prolog - 给定特定线索,在 Prolog 中填写表格(爱因斯坦谜语)
假设有五个办公室的表格。每个办公室都有颜色、部门、电脑、饮料、手机和从 1 到 5 的特定位置:
我试图为 Prolog 提供以下线索,以便它可以正确填写表格:
- 喝牛奶的人在 3 号办公室。
- 在公共关系('pubrel')部门工作的人在办公室#1。
- 公关部的人在蓝色办公室旁边。
- 绿色办公室在粉红色办公室的右侧。
- 绿色办公室的人正在喝咖啡。
- 黄色办公室里的人有一部黑莓手机,黄色办公室就在那个拥有windows7 pc的人的办公室旁边。
- 在红色办公室工作的人来自'cs'部门。
- 'ode' 部门的人有 mac_pro 电脑。
- 财务('fin')部门的人正在喝茶。
- 拥有 iphone 的人也拥有 mac_air 电脑。
- 拿着诺基亚手机的男人旁边是有上网本的男人。
- 拥有安卓手机的男人正在喝橙汁。
- 供应部门的人有一部爱立信电话。
我在用着
其中 X 是一个办公室的属性,Y 是该办公室的位置。例如:
我将这些线索定义为“规则”,它们都应该同时起作用。
然后将它们全部提供给谓词“办公室”,如果它们都可以一起应用,则该谓词应该为真,以便正确形成表格。
我定义perm(X,Y)
为当属性X
被允许捕获特定点时变为真的术语Y
,这意味着X
没有捕获另一个因此被允许。
最后,of(X,Y)
如果该位置Y
尚未被另一个X
. 例如,of(color(red),3)
如果没有其他颜色捕获点 3,则应该为真。
因此,perm(X,Y)
并且of(X,Y)
应该在每个规则中同时为真。
它不起作用,可能是因为它确实有任何具体的开始。它不知道什么时候
将是真的。但我被困住了,想不出一种方法来定义特定的开始。任何人都可以帮助如何使它工作?
prolog - Prolog 中的逻辑谜题 - 使用列表
我正在尝试在 Prolog 中解决以下问题,并且我认为我的编码是正确的,但是我的查询只是返回 false。关于改变什么的任何建议?问题如下:
“Bagel Alley 是当地的百吉饼店,在早上上下班途中总是热闹非凡,因为人们在上班路上停下来买咖啡和百吉饼。每天早上在现场新鲜制作,百吉饼非常受欢迎,而且事实上,这家店的咖啡也很棒,简直是锦上添花!在 Bagel Alley 工作的人都很开朗友好,而且能干,所以尽管顾客数量众多,但等待的时间从不漫长或不愉快。乔和他的四个同事今天早上过来看看大家都在说什么,惊喜地发现这家店名不虚传。确定每个同事的名字,什么样的百吉饼配上馅料,味道和大小每个点的咖啡(小、中或大)。”
布拉德拿到了他的百吉饼,不是小麦,上面什么都没有。沃尔特点了一杯咖啡。
得到中型咖啡的两个同事一个得到了榛子味,另一个得到了他的百吉饼加花生酱。
得到洋葱百吉饼但没有加黄油的人还得到了法国香草咖啡,但不是小尺寸。
五个同事是乔,一个是大杯咖啡,一个是杏仁味咖啡,一个是小麦百吉饼,还有一个是在百吉饼上放鸡蛋和培根。
里克没有点蓝莓百吉饼,但他点了哥伦比亚咖啡。Amaretto 咖啡是和切达面包圈一起点的,但不是 Walt 点的。
奶油芝士没有配蓝莓百吉饼,但配了一大杯咖啡。芝麻百吉饼配黄油,但卡洛斯没有点。
我写的Prolog代码在这里:
我相信运行查询“百吉饼(X)”。应该给我解决问题的方法,但它返回错误。我错过了什么吗?提前谢谢了!
prolog - 爱因斯坦谜语与术语列表
我在 Prolog 中实现了 Einstein Riddle,我试图找出谁在家里养了一条鱼。
我在此代码中找不到错误,并且跟踪选项无助于解决此问题;)
规则:
- 挪威人住在第一所房子里
- 英国人住在一座红房子里。
- 温室直接位于白宫的左侧。
- 丹麦人喝茶。
- 轻度吸烟者住在猫的饲养者旁边。
- 黄色房子的居民抽着雪茄。
- 德国人抽水烟。
- 中心房屋的居民喝牛奶。
- 轻度吸烟者有一个喝水的邻居。
- 没有过滤嘴的香烟会繁殖鸟类。
- 瑞典人饲养的狗。
- 挪威人住在蓝屋旁边。
- 饲养马的人住在黄色房子旁边。
- 抽薄荷醇喝啤酒。
- 他们在温室里喝咖啡。
这是我的代码:
我尝试了很多组合,但是:
?- 鱼(谁)。
错误的。
编辑:
代码现在可以工作,我改变了什么:
1* 来自:
至:
2* 来自:
至:
如果您正在阅读这篇文章,请查看关于辅助谓词中结构的@Enigmativity 评论。
prolog - 爱因斯坦谜语使用 Prolog
我正在尝试使用 Prolog 解决爱因斯坦之谜。当我试图通过房屋(Hs)运行时,它显示否。任务是
- 英国人住在红房子里。
- 瑞典人养狗作为宠物。
- 丹麦人喝茶。
- 绿房子就在白宫的左边。
- 温室的主人喝咖啡。
- 抽 Pall Mall 烟的店主养鸟。
- 黄色房子的主人抽登喜路。
- 住在中心屋的主人喝牛奶。
- 挪威人住在第一间房子里。
- 抽 Blends 的主人住在养猫的主人旁边。
- 养马的主人住在抽登喜路的主人旁边。
- 抽 Bluemasters 的老板喝啤酒。
- 德国人抽王子烟。
- 挪威人住在蓝屋旁边。
- 抽 Blends 的主人住在喝水的人旁边。
我不知道出了什么问题。谢谢