目录
人工智能概述
集合和关系实践训练
1、集合的概念
2、集合的基本运算
3、集合的运算规律
4、关系
#coding=utf-8
import sympy as sym
# 定义符号a-h。
#***** Begin *****#
a,b,c,d,e,f,g,h = sym.symbols("a, b, c, d, e, f, g, h")
#***** End *****#
# 创建有限集A和B,A包含元素a-d,B包含元素e-h。
#***** Begin *****#
A = sym.FiniteSet(a, b, c, d)
B = sym.FiniteSet(e, f, g, h)
#***** End *****#
# 打印A,B两个集合。
#***** Begin *****#
print(A)
print(B)
#***** End *****#
# 判断元素a 是否在集合A中, 输出判断结果。
#***** Begin *****#
print(A.has(a))
#***** End *****#
# 判断元素a 是否在集合B中,输出判断结果。
#***** Begin *****#
print(B.has(a))
#***** End *****#
# 创建并输出集合C,C包含10以内的偶数。
#***** Begin *****#
C = sym.FiniteSet(0,2,4,6,8,10)
print(C)
#***** End *****#
# 创建并输出空集D。
#***** Begin *****#
D = sym.FiniteSet()
print(D)
#***** End *****#
# 按照相关知识中子集的第一个形式来验证子集的第四个性质。
#***** Begin *****#
A = sym.FiniteSet(1,2,3) # 创建集合A={1,2,3}
B = sym.FiniteSet(1,2,3,4) # 创建集合B={1,2,3,4}
C = sym.FiniteSet(1,2,3,4,5) # 创建集合C={1,2,3,4,5}
print(True) # 判断A是否为B的子集
print(True) # 判断B是否为C的子集
print(True) # 判断A是否为C的子集
#***** End *****#
#coding=utf-8
import sympy as sym
# 创建有限集A和B,A包含元素1-5,B包含元素2,3,5,7。
#***** Begin *****#
A = sym.FiniteSet(1, 2, 3, 4, 5)
B = sym.FiniteSet(2, 3, 5, 7)
#***** End *****#
# 打印A,B两个集合。
#***** Begin *****#
print(A)
print(B)
#***** End *****#
# 输出A, B的交集。
#***** Begin *****#
C = sym.Intersection(A, B) # 使用交运算函数
print(C) # 输出结果集合C
#***** End *****#
# 输出A, B的并集。
#***** Begin *****#
C = sym.Union(A, B) # 使用并运算函数
print(C) # 输出结果集合C
#***** End *****#
# 输出A, B的差集。
#***** Begin *****#
C = A - B
print(C) # 输出结果集合C
#***** End *****#
# 验证A-B与A-A交B是否相等。
#***** Begin *****#
C = A - B
D = A - sym.Intersection(A, B)
print(C == D)
#***** End *****#
# 验证A,B的对称差与(A-B)并(B-A)是否相等
#***** Begin *****#
C = sym.Union(A, B) - sym.Intersection(A, B)
D = sym.Union(A-B, B-A)
print(C == D)
#***** End *****#
#coding=utf-8
import sympy as sym
# 创建有限集A,B和C,A包含元素1-4,B包含元素3-6,C包含元素1,3,5。
#***** Begin *****#
A=sym.FiniteSet(1,2,3,4)
B=sym.FiniteSet(3,4,5,6)
C=sym.FiniteSet(1,3,5)
#***** End *****#
# 设置全集E,E包含元素1-6
#***** Begin *****#
E=sym.FiniteSet(1,2,3,4,5,6)
E.is_UniversalSet
#***** End *****#
# 验证第一个幂等律,输出验证结果。
#***** Begin *****#
print(sym.Intersection(A,A) == A and sym.Union(A, A) == A)
#***** End *****#
# 验证第一个分配律,输出验证结果。
#***** Begin *****#
print(sym.Intersection(A,sym.Union(C, B)) == sym.Union(sym.Intersection(A,B),sym.Intersection(A,C)) and sym.Union(A,sym.Intersection(C, B)) == sym.Intersection(sym.Union(A,B),sym.Union(A,C)))
#***** End *****#
# 验证第一个吸收律,输出验证结果。
#***** Begin *****#
print(sym.Intersection(A, sym.Union(A,B)) == A and sym.Union(A, sym.Intersection(A,B)) == A)
#***** End *****#
# 验证德摩根律,输出验证结果。
#***** Begin *****#
print(sym.Intersection(A,B).complement(E)==sym.Union(A.complement(E),B.complement(E)) and sym.Union(A,B).complement(E)==sym.Intersection(A.complement(E),B.complement(E)))
#***** End *****#
# 证明对任何集合X和Y,(X-Y)交(Y-X)=空集,输出验证结果(空集用 sym.EmptySet() 表示)。
#***** Begin *****#
print(sym.Intersection((A-B),(B-A)) == sym.EmptySet())
#***** End *****#
#coding=utf-8
import sympy as sym
# 定义符号a-f。
#***** Begin *****#
a,b,c,d,e,f = sym.symbols("a, b, c, d, e, f")
#***** End *****#
# 创建有限集A和B,A包含元素1,2,3,B包含元素a,b,c。
#***** Begin *****#
A=sym.FiniteSet(1,2,3)
B=sym.FiniteSet(a,b,c)
#***** End *****#
# 打印A,B两个集合。
#***** Begin *****#
print(A)
print(B)
#***** End *****#
# 输出集合A,B的笛卡儿积。
#***** Begin *****#
AxB=sym.cartes(A,B)
for pair in AxB:
print(pair)
#***** End *****#
# 输出集合B,A的笛卡儿积。
#***** Begin *****#
BxA=sym.cartes(B,A)
for pair in BxA:
print(pair)
#***** End *****#
# 设集合A={1,2,3}, B={a,b,c}, C={d,e,f}, R={<1,b>,<3,c>}, S={},
# 使用关系矩阵计算R·S,输出结果矩阵。
#***** Begin *****#
R=sym.Matrix([[0,1,0],[0,0,0],[0,0,1]])
S=sym.Matrix([[0,0,0],[0,0,1],[0,0,0]])
R_S = R*S
sym.pprint(R_S)
#***** End *****#