笛卡尔积 计算机中的笛卡尔积
一、笛卡尔积的概念及其操作原理
在数学中,两个集合X和Y的笛卡儿积(Cartesianproduct),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。假设集合A=a,b,集合B=0,1,2,则两个集合的笛卡尔积为(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。A表示所有声母的集合,B表示所有韵母的集合,那么A和B的笛卡尔积就为所有可能的汉字全拼。
设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作AxB.
笛卡尔积的符号化为:
A×B={(x,y)|x∈A∧y∈B}
例如,A={a,b},B={0,1,2},则
A×B={(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}
B×A={(0,a),(0,b),(1,a),(1,b),(2,a),(2,b)}
运算性质
1.对任意集合A,根据定义有
AxΦ=Φ,ΦxA=Φ
2.一般地说,笛卡尔积运算不满足交换律,即
AxB≠BxA(当A≠Φ∧B≠Φ∧A≠B时)
3.笛卡尔积运算不满足结合律,即
(AxB)xC≠Ax(BxC)(当A≠Φ∧B≠Φ∧C≠Φ时)
4.笛卡尔积运算对并和交运算满足分配律,即
Ax(B∪C)=(AxB)∪(AxC)
(B∪C)xA=(BxA)∪(CxA)
Ax(B∩C)=(AxB)∩(AxC)
(B∩C)xA=(BxA)∩(CxA)
二、什么是广义笛卡尔积运算
广义笛卡尔积运算是指在数学中,将多个集合的元素进行组合的操作。它的结果是一个新的集合,其中的元素由原始集合中的元素按照一定规则组合而成。
广义笛卡尔积运算可以用于解决组合问题,例如在计算机科学中,可以用于生成所有可能的组合或排列。在实际应用中,广义笛卡尔积运算常用于数据库查询、集合论、组合数学等领域。
三、什么是笛卡尔积运算
有A集合学生与B集合老师,他们如果没有WHERE的关系约束,则连接(JOIN)后就会产生所有可能出现的阵列乘积,即笛卡尔积。e.g:A{S1,S2}B{T1,T2}A与B笛卡尔积后(注意,不可以像乘法那样实体关系可以进行交换乘机位置。)
A*B={<S1,T1>,<S1,T2>,<S2,T1>,<S2,T2>}