爱因斯坦的谜语

2024-02-21

我是 Prolog 的新手,我正在尝试在 Prolog 中模拟一个类似爱因斯坦谜语(也称为斑马谜语)的谜语(但有 10 个房屋和 30 个提示),我使用此模型示例作为起点:

http://www.baptiste-wicht.com/2010/09/solve-einsteins-riddle-using-prolog/ http://www.baptiste-wicht.com/2010/09/solve-einsteins-riddle-using-prolog/

但在我的谜语中,我必须能够说 X 是 Y 的右边。我的意思不是直接正确,而是在列表中的右边。所以 Y 可以在 1 号房子里,而 X 在 9 号房子里。

我怎样才能在 Prolog 中做到这一点?我正在考虑一个谓词,它说 Y 是通过将 X 和 X 之前的所有元素从该列表中取出而构造的列表的成员,但我不知道如何做到这一点或如何做到这一点,以便我可以将其放入前面提到的例子。


右(X,Y):- 右(X,Z),右(Z,Y)。

因此,您只需使用传递闭包来定义正确的谓词,然后定义彼此直接相邻的元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

爱因斯坦的谜语 的相关文章

  • 在 Prolog 中表达“交换性”的替代方案?

    作为一个Prolog的初学者 我发现Prolog中的交换表达式非常不直观 例如 如果我想表达 X 和 Y 属于一个家庭 例如 family X Y married X Y relative X Y father son X Y 我还应该在定
  • 如何在 swi-prolog 的 prolog 文件中运行 prolog 查询?

    如果我有一个定义规则的 prolog 文件 并在 Windows 中的 prolog 终端中打开它 它会加载事实 然而 然后它显示 提示我手动输入一些内容 如何将代码添加到文件中 以便它实际上会评估这些特定的语句 就像我输入它们一样 像这样
  • 如何在 Prolog 中为变量(如字符串)分配多个值?

    今天早些时候 我寻求帮助以在序言中构建数据库以及如何通过参数搜索 有人提出了这个 您还可以向每个处理器添加术语列表 例如 processor pentium g4400 brand intel family pentium series g
  • 井字游戏的极小极大

    我正在尝试用简单的极小极大算法来解决井字游戏 简单 但应该涵盖很多语言 到目前为止我所拥有的 该板表示为 9 个 未绑定 变量的数组 这些变量可以设置为x or o 获胜条件基本上是 win Player X1 X2 X3 X1 Playe
  • 为什么在具体化中将 clpfd 变量分配给实际值?

    我正在开发一个 SWI Prolog 程序 该程序使用 CLP FD 约束来找到特定问题的解决方案 为此 我碰巧需要两个列表的 未定位 重叠 那是 List La长度为A List Lb长度为 B A gt B 未定位的重叠列表是La Lb
  • 非成员规则在 Prolog 中无法按预期工作

    我正在尝试在 Prolog 中创建一个迷宫程序 其目的是找到一条从迷宫起点到迷宫中心点 m 的路线 迷宫由使用四种颜色之一连接的正方形组成 蓝色 绿色 紫色或橙色 从起点到中心的路线遵循四种颜色的重复图案 我创建了以下代码 link2 A
  • 在 Prolog、尾递归中计算斐波那契数列

    我想在 Prolog 中以递归尾部模式计算斐波那契数列 fibonacci 0 0 fibonacci 1 1 fibonacci N Result fibonacci N 1 0 fibonacci N Result Count Coun
  • 转换句子会产生无限循环 - 但如何转换呢?

    我不明白这是哪里出了问题 请注意 我对 Prolog 很陌生 我确信我错过了一些东西 只是不知道那可能是什么 有人可以帮我吗 谢谢 这是我的代码 printSentence printSentence W write W write nl
  • Prolog 过滤自定义目标失败的所有元素的列表

    我正在尝试写一个谓词filter List PredName Result 过滤一个List目标的所有要素PredName失败并随后返回Result列表 谓词PredName 1应该在调用过程时定义filter 3例如可以是 test N
  • 根据一个值找到列表内列表的最小值

    我在序言中有这个列表 dublin london 1000 dublin moscow london 5000 我想计算列表的最小值 这样答案应该是 dublin london 1000 这个问题有一些类似的问题序言中列表列表中的最小值 h
  • Prolog 展平列表

    flatten A B R islist A gt flatten A R1 R R1 write A append A R1 R flatten B R1 flatten X X islist 这是我写的代码 但我有奇怪的问题 I get
  • Prolog家谱

    我做到了 但没有显示答案 当我询问兄弟姐妹 叔叔 阿姨时 这是我写的 有什么问题吗 uncle X Y male X sibling X Z parent Z Y uncle X Y male X spouse X W sibling W
  • 如何在 ISO Prolog 中定义(和命名)相应的安全术语比较谓词?

    标准术语顺序 ISO IEC 13211 1 7 2 术语顺序 针对所有术语 包括变量 进行定义 虽然这有很好的用途 想想实施setof 3 这使得 8 4 术语比较中内置函数的许多其他干净且合乎逻辑的使用成为声明式噩梦 到处都是 imps
  • 使用 prolog 添加另外两次出现

    我有一个清单 a b a a a c c 我需要为每个元素添加两次以上的出现 最终结果应该是这样的 a a a b b b a a a a a c c c c 如果列表中有一个与下一个项目相同的项目 那么它会继续下去 直到出现一个新项目 当
  • 将 SWI Prolog 代码编译为 Windows 可执行文件 - 解析器 Grails3 项目

    我正在尝试构建解析器 Grails3 项目https github com RichardMoot Grail https github com RichardMoot Grail谁的教程是http www labri fr perso m
  • 如何让 Prolog 解释你的结果超出真实的陈述

    我有以下事实和规则 flight sea msp flight msp jfk route A B flight A B route B A flight A B route A C flight A B flight B C 当查询rou
  • SWI Prolog 转义引号

    我需要在序言中将 放在字符串周围 我从另一个程序获取输入 看起来我无法转义该程序中的 因此我必须在序言中添加 否则序言语句将不起作用 感谢您的帮助 为了讨论strings https stackoverflow com a 39922411
  • 如何为这个“移动块”Prolog 练习实现求解谓词?

    我正在使用 Ivan Bratko 的书 人工智能编程 学习 Prolog 我发现实施拟议练习的最后部分有些困难 该练习是一个使用图形来决定如何移动块并按顺序排列它们的程序 这是与程序必须执行的操作相关的图像 正如您在上图中看到的 可以使用
  • json 获取 prolog 谓词

    我试图在序言中创建这个谓词 谓词json get 3可以定义为 json get JSON obj Fields Result 这是正确的 当Result可以通过以下方式恢复 中的字段链Fields 列表 从JSON obj 一个字段 代表
  • findall 的异常行为

    以下看起来很不寻常 findall X member X 1 2 3 X X 1 2 3 痕迹更是如此 trace findall X member X 1 2 3 X Call 11 findall 100058 member 10005

随机推荐

  • write() 参数必须是 str,而不是字节 [重复]

    这个问题在这里已经有答案了 我是一名初学者程序员 正在阅读 Python 初学者 一书 我在尝试为问答游戏编写高分函数时遇到了一个问题 当调用函数 highscore user highscore 时 我尝试相应地分配参数 以便我可以将信息
  • 获取 keyvault 的访问令牌

    我在本地发布了一个 Web 应用程序并将其连接到 IIS 当我尝试导航到该网站时 它在启动时失败 并在尝试访问该网站时出现以下错误keyvault 应用程序启动异常 Microsoft Azure Services AppAuthentic
  • 如何通过 Bootstrap 选项卡使用 AJAX 加载?

    我使用了 bootstrap tabs js 并且它运行得很好 但我没有找到有关如何通过AJAX请求加载内容的信息 那么 如何通过 bootstrap tabs js 使用 AJAX 加载呢 在 Bootstrap 2 0 及更高版本中 您
  • 如何通过网络驱动器快速获取 .csv 文件的最后一行?

    我存储了数千个时间序列 csv网络驱动器上的文件 在更新文件之前 我首先获取文件的最后一行以查看时间戳 然后使用该时间戳之后的数据进行更新 如何快速获取最后一行 csv文件通过网络驱动器 这样我就不必加载整个巨大的 csv文件只使用最后一行
  • 什么是获得颜色以使图像上的文本突出的好算法?

    例如下图 背景是一张照片 照片中央有一个 伊涅斯塔 这个人物 但由于颜色不好 字符有些难以阅读 有没有什么好的算法可以获取颜色以使图像上的字符突出 您可以使用以下技巧 而不是制作矩形背景 确实看起来不太好 选择两种对比色 例如白色和黑色 使
  • 使用php获取两个日期之间的总时间差[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 PHP 计算两个日期之间的差异 https stackoverflow com questions 676824 how to calculate the difference betwee
  • 为什么我不能编写与 Box::new 类型相同的函数?

    如果我编写一个接受一个类型参数的函数 f32 相对于例如 f32 我得到一个错误 the trait bound f32 std marker Sized is not satisfied 文档说这是因为 f32 没有编译时已知的大小 合理
  • 如何将 Autofac 与 WepApi 2 和 Owin 集成?

    我正在使用此包将 Autofac 与我的 WebApi Owin 应用程序集成 https www nuget org packages Autofac WebApi2 Owin https www nuget org packages A
  • 合并包含COCO人物关键点注释的json文件

    我使用注释了一些图像可可注释器 https github com jsbroks coco annotator 我想将这些注释与现有注释 person keypoints train2017 json 和 person keypoints
  • MobileVLCKit 编译时失败

    我正在尝试在我的应用程序中使用适用于 iOS 的 MobileVLCKit 我按照 给出的步骤进行操作构建 iOS 框架 https wiki videolan org VLCKit 我已在 Xcode 5 中将部署目标设置为 iOS 7
  • 在 Slick 3 的事务中执行非数据库操作

    我无法理解新的 SlickDBIOActionAPI 文档中似乎没有很多示例 我使用的是 Slick 3 0 0 我需要执行一些数据库操作 还需要对从数据库接收的数据进行一些计算 但所有这些操作都必须在单个事务内完成 我正在尝试执行以下操作
  • 如何更新jqgrid中的数据值

    我试图在加载时永久更新 jqgrid 中的单元格 我知道我可以使用setCell但这只会更新该页面的值 如果我回到该页面 如果我没有明确执行另一个setCell对于单元格 显示旧值 我也尝试过 setRowData 但它似乎在做同样的事情
  • 无法提交 JPA 事务:事务标记为 rollbackOnly

    我在我正在开发的应用程序之一中使用 Spring 和 Hibernate 但在处理事务时遇到了问题 我有一个服务类 它从数据库加载一些实体 修改它们的一些值 然后 当一切都有效时 将这些更改提交到数据库 如果新值无效 我只能在设置后检查 我
  • 使用c#从图像中裁剪十字矩形

    我想做的基本上是从图像中裁剪一个矩形 但是 它应该满足一些特殊情况 我想在图像上裁剪一个有角度的矩形 我不想旋转图像并裁剪矩形 如果裁剪超出图像大小 我不想裁剪空的背景颜色 我想从起点的后面进行裁剪 当矩形尺寸完成时 它将在起点处结束 我知
  • 身份验证错误 e.Message = OAuth 错误 = 权限+错误

    我在 xamarin android 和 xamarin ios PCL 项目中使用 Xamarin Auth 版本 1 5 0 3 通过 facebook 的 OAuth API 进行应用程序身份验证 登录 我单击 现在不 链接后出现问题
  • 用户身份验证和密码安全的 PHP 最佳实践

    当前无需使用 CMS 或重型框架即可对用户进行身份验证的最佳库 方法是什么 响应应包括您认为应被视为涉及用户身份验证的新 PHP 开发标准的任何建议 OpenID http openid net 是一种根据用户在常见网络服务 例如 Yaho
  • 2 个 NSDate 应该相等不是吗?

    我正在使用 Stig Brautaset http code google com p json framework 的 JSON 库 我需要序列化 NSDate 我正在考虑在将其 JSON化之前将其转换为字符串 但是 我遇到了这种奇怪的行
  • 在 Typescript 中检测 React 子数组长度

    我有一个可以接受 React 的组件children作为节点或节点数组 我希望能够检测到是否children是一个节点数组 但我收到以下 Typescript 错误 TS2339 类型 string 上不存在属性 length 数量 真实
  • MySQL WorkBench - 为什么持续时间 + 获取时间 < 实际等待时间

    我正在 mySQL Workbench 中运行查询 从开始查询到显示结果需要5分钟 尽管如此 还是显示了以下 处理 时间 在 WorkBench 输出面板中 持续时间 0 000 秒 获取 2 562 秒 问题 如何解释这种差异 5 分钟与
  • 爱因斯坦的谜语

    我是 Prolog 的新手 我正在尝试在 Prolog 中模拟一个类似爱因斯坦谜语 也称为斑马谜语 的谜语 但有 10 个房屋和 30 个提示 我使用此模型示例作为起点 http www baptiste wicht com 2010 09