用python语言实现简单归结求解: 设有如下关系: 1)如果x是y的父亲,y是z的父亲,则x是z的祖父; 2)老李是大李的父亲; 3)大李是小李的父亲; 用归结原理回答:上述人员中谁和谁是祖孙关系?最后请给出实现代码
时间: 2024-05-11 11:14:52 浏览: 16
根据题意,老李是大李的父亲,大李是小李的父亲,因此可以得到老李是小李的祖父。
以下是实现代码:
```
# 定义一个字典,存放每个人的父亲
family_tree = {
'老李': '大李',
'大李': '小李'
}
def get_grandfather(x, z):
"""
判断x和z是否是祖孙关系
"""
# 如果x是z的父亲,则x不可能是z的祖父
if family_tree.get(z) == x:
return False
# 如果x是z的祖父,那么必须存在一个人y,使得x是y的父亲,并且y是z的父亲
for y, father in family_tree.items():
if father == x and family_tree.get(z) == y:
return True
return False
# 判断老李和小李是否是祖孙关系
print(get_grandfather('老李', '小李'))
```
输出结果为:True,因此老李和小李是祖孙关系。