List Prolog列表决策
我不熟悉开场白编程。请帮我在清单上做个决定。其中,当存在anaklakilaki变量时,suami输出为1/2而不是1/4 这是我的密码 这是苏亚米的规则,当他没有阿纳克拉基拉基时,他的价值输出是1/2List Prolog列表决策,list,prolog,List,Prolog,我不熟悉开场白编程。请帮我在清单上做个决定。其中,当存在anaklakilaki变量时,suami输出为1/2而不是1/4 这是我的密码 这是苏亚米的规则,当他没有阿纳克拉基拉基时,他的价值输出是1/2 hitungwaris([],[]). %Suami tidak punya anak hitungwaris([suami|L],[Suami|BL]) :- Suami is 1/2, hitungwaris(L,BL). 当苏亚米拥有阿纳
hitungwaris([],[]).
%Suami tidak punya anak
hitungwaris([suami|L],[Suami|BL]) :-
Suami is 1/2,
hitungwaris(L,BL).
当苏亚米拥有阿纳克拉基拉基时,他的价值观是1/4
%rules suami jika punya anak
hitungwaris([suami|L],[Suami|BL]) :-
Suami is 1/4,
hitungwaris(L,BL).
这个规则是anaklakilaki,我想当这个被超越时,suami的输出是1/4
%rules anak laki-laki kandung jika hanya seorang
hitungwaris([anaklakilaki|L],[AnakLaki|BL]) :-
AnakLaki is 2/3,
hitungwaris(L,BL).
这是我的疑问
?-hitungwaris([suami,anaklakilaki],X).
这里是输出
X = [0.5, 0.6666666666666666]
X = [0.25, 0.6666666666666666]
我希望输出是第二个输出,X=[0.25,0.666666]像这样
请帮助我在列表中执行决策
谢谢你你想要的只是答案
X=[0.25,0.6666]。
但是,有两条规则适用于suami
案例:
%丈夫没有孩子
希通瓦利斯([suami | L]、[suami | BL]):-
苏亚米是1/2,
希通瓦利斯(L,BL)。
%丈夫,如果你有孩子
希通瓦利斯([suami | L],[suami | BL]):-
苏亚米是四分之一,
希通瓦利斯(L,BL)。
或同等地
hitungwaris([suami | L],[suami | BL]):-
(苏亚米是1/2;苏亚米是1/4),
希通瓦利斯(L,BL)。
因此,当列表中遇到suami
时,Prolog将首先应用一个,然后应用另一个,从而得到两个答案
因为您只需要其中一个,所以您的问题规范中缺少了一些内容