【问题标题】:PROLOG Uncle relationship without brotherPROLOG 没有兄弟的叔叔关系
【发布时间】:2018-04-10 00:19:15
【问题描述】:

我刚刚开始学习 PROLOG,我的任务是在家族树中创建 阿姨/叔叔 关系。可以使用 sister 关系创建姨妈关系,但必须在没有它的情况下创建叔叔关系。

目前的谓词有:男、女、父母 & 到目前为止创建的规则是:父亲、母亲、祖父、祖母、姐妹

这是我目前所拥有的:

sister(Sister,Individual):- 
female(Sister),
parent(X,Sister),
parent(X,Individual), 
Sister \= Individual.

aunt(Aunt, Individual):- sister(Aunt, X), parent(X, Individual).

如果不使用兄弟,我将如何创建 叔叔 关系?我知道 parent(parent(Individual)) == parent(uncle) 但是考虑到我目前的关系,我该怎么说呢?

提前感谢您的帮助!

【问题讨论】:

    标签: prolog logic


    【解决方案1】:

    我不会认为自己是 Prolog 中的佼佼者,但我相信这会奏效。有不对的地方请评论,我会改正的!

    我们知道以下几点:

    • 个人的叔叔必须是男性。
    • 叔叔将与个人的父母共享父母。

    因此,我们可以这样定义规则:

    uncle(Uncle, Individual) :- 
        male(Uncle),            % The uncle must be male.
        parent(X, Individual),  % Assume there's some parent of the individual, X.
        parent(Y, Uncle),       % Assume there's some parent of the uncle, Y.
        parent(Y, X).           % Y must be the parent of X.
    

    【讨论】:

    • 感谢您的回复!我有一个后续问题,我不确定它是否适用:如果您为个人获得男性父母,为叔叔获得女性父母,您是否必须考虑?或相反亦然?编辑:NVM,愚蠢的问题!我们正在检查叔叔的父母(无论是男性还是女性)是否也是 X 的父母,对吗?
    • 我认为您不必考虑这一点,因为共享父母可以是母亲或父亲。
    • 是的,因为XIndividual 的父级
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 2019-03-31
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多