0
A
回答
1
假設下面的樹,孩子們在紅色
一個簡單的解決辦法,然後是:
male(lennart).
male(mike).
male(donald).
male(usain).
male(joar).
male(adam).
male(dan).
male(simon).
female(hillary).
female(elise).
female(lisa).
female(lena).
parent(mike, lennart).
parent(mike, lena).
parent(lennart, donald).
parent(lennart, hillary).
parent(lennart, usain).
parent(lena, adam).
parent(lena, simon).
parent(adam, dan).
parent(donald, lisa).
parent(hillary, joar).
parent(hillary, elise).
child(lisa).
child(joar).
child(elise).
child(dan).
child(simon).
%% predicate rules
father(X,Y) :- male(X),parent(X,Y).
mother(X,Y) :- female(X),parent(X,Y).
son(X,Y) :- male(X),parent(Y,X).
daughter(X,Y) :- female(X),parent(Y,X).
family_children(X, X):-
child(X).
family_children(X, Child):-
parent(X,Y),
family_children(Y, Child).
試運行:
[debug] ?- family_children(mike, Child).
Child = lisa ;
Child = joar ;
Child = elise ;
Child = dan ;
Child = simon ;
false.
這是它如何做只是一個簡單的例子,例子依賴的假設,即孩子不能要一個孩子,但是這可能的解決方案可以很容易地提高,你可以像cousin/2
,grandfather/2
,sister/2
添加規則,uncle/2
等...
希望你現在有一些想法,祝你好運。
相關問題
- 1. 如何從兒童活動中返回家庭活動?
- 2. Android家長和兒童ActivityOrientation
- 3. 解析兒童Simplexml兒童
- 4. 兒童內部角兒童
- 5. 獲取孩子類的家庭樹
- 6. 序言 - 遞歸下來的家庭樹
- 7. 更新家長模型更新兒童
- 8. 合併工具條MDI兒童 - 家長
- 9. 添加vue.js組件從兒童到家
- 10. 恢復所有兒童家長[]
- 11. 簡化jQuery的家長和兒童
- 12. AS2家長 - 兒童swf通訊
- 13. 兒童家長VS Z-指數問題
- 14. 二進制樹兒童計數php mysql
- 15. JUNG在樹中指定左右兒童
- 16. GraphViz二叉樹左右兒童
- 17. 如何在樹上數兒童
- 18. swi-prolog家族樹中的錯誤
- 19. 兒童
- 20. 兒童兒童enumerateChildNodes(withName:使用:)
- 21. 計算兒童兒童的軌跡
- 22. 兒童通信
- 23. Winforms + MDI兒童
- 24. Jinja2兒童
- 25. 從兒童SWF
- 26. GuiApplication兒童空
- 27. TreeView兒童
- 28. 選擇兒童
- 29. 兒童功能
- 30. 與兒童
我很確定這是我在學習Prolog的第一課時的一個例子。你嘗試過什麼嗎? – kay