首页资讯商务会员钢材特钢不锈炉料铁矿废钢煤焦铁合金有色化工水泥财经指数人才会展钢厂海外研究统计数据手机期货论坛百科搜索导航短信English
登录 注册

按字母顺序浏览 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

热门关键字: 螺纹钢 铁矿石 电炉 炼钢 合金钢 转炉 结构钢
钢铁百科 - 钢之家

笛卡尔乘积发表评论(0)编辑词条

笛卡儿乘积即笛卡尔乘积。

 笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况。

目录

1名称定义序编辑本段回目录

偶定义
由两个元素x和y(x=y)按一定顺序排列成的二元组叫做一个有序对或序偶,记作<x,y>,其中x是它的
第一元素,y是它的第二元素。
有序对<x,y>;具有以下性质:
1.当x≠y时,<x,y>≠<y,x>[1].
2.<x,y>=<u,v>;的充分必要条件是x=u且y=v.
这些性质是二元集{x,y}所不具备的。例如当x≠y时有{x,y}={y,x}。原因在于有序对中的元素是有序的
,而集合中的元素是无序的。
例:已知<x+2,4>=<5,2x+y>;,求x和y。
解:由有序对相等的充要条件有 x+2=5和2x+y=4 联立解得 x=3,y=-2.
笛卡尔积定义
设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成的有序对,所有这样的有序对组成的集合
叫做A与B的笛卡尔积,记作AxB.
笛卡尔积的符号化为:
AxB={<x,y>|x∈A∧y∈B}
例如,A={a,b},B={0,1,2},则
AxB={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}
BxA={<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)
推导过程
给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
所有域的所有取值的一个组合不能重复
案例
给出三个域:
D1=SUPERVISOR ={ 张清玫,刘逸 }
D2=SPECIALITY={计算机专业,信息专业}
D3=POSTGRADUATE={李勇,刘晨,王敏}
则D1,D2,D3的笛卡尔积为D:
D=D1×D2×D3 =
{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),
(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),
(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),
(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),
(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),
(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }
这样就把D1,D2,D3这三个集合中的每个元素加以对应组合,形成庞大的集合群。
本个例子中的D中就会有2X2X3个元素,如果一个集合有1000个元素,有这样3个集合,他们的笛卡尔积所组成的新集合会达到十亿个元素。假若某个集合是无限集,那么新的集合就将是有无限个元素。

2序偶与笛卡尔积编辑本段回目录

在日常生活中,有许多事物是成对出现的,而且这种成对出现的事物,具有一定的顺序。例如,上,下;左,右;3〈4;张华高于李明;中国地处亚洲;平面上点的坐标等。一般地说,两个具有固定次序的客体组成一个序偶,它常常表达两个客体之间的关系。记作〈x,y〉。上述各例可分别表示为〈上,下〉;〈左,右〉;〈3,4〉;〈张华,李明〉;〈中国,亚洲〉;〈a,b〉等。
序偶可以看作是具有两个元素的集合。但它与一般集合不同的是序偶具有确定的次序。在集合中{a,b}={b,a},但对序偶〈a,b〉≠〈b,a〉。
设x,y为任意对象,称集合{{x},{x,y}}为二元有序组,或序偶(ordered pairs),简记为<x,y>;。称x为<x,y>;的第一分量,称y为第二分量。
定义
3-4.1 对任意序偶<a,b>,<c,d >,<a,b> = <c,d > 当且仅当a=c且b = d。
递归定义n元序组 <a1,…,an>
<a1,a2> ={{a1},{a1,a2}}
<a1,a2,a3 > = { {a1},{a1,a2},{a1,a2,a3}}
= < <a1,a2 >,a3 >
<a1,…an> = <<a1,…an-1>,an>
两个n元序组相等
< a1,…an >= < b1,…bn >&Ucirc;(a1=b1) ∧ …∧ (an=bn)
定义3-4.2 对任意集合 A1,A2,…,An,
(1)A1×A2,称为集合A1,A2的笛卡尔积(Cartesian product),定义为
A1 ×A2={x | $u $v(x = <u,v>;∧u &Icirc;A1∧v&Icirc;A2)}={<u,v> | u &Icirc;A1∧v&Icirc;A2}
(2)递归地定义 A1 × A2× … × An
A1 × A2×… × An= (A1× A2 × …× An-1)×An
例题1 若A={α,β},B={1,2,3},求A×B,A×A,B×B以及(A×B)&Ccedil;(B×A)。
解 A×B={〈α,1〉,〈α,2〉,〈α,3〉,〈β,1〉,〈β,2〉,<;β,3〉}
B×A={〈1,α〉,〈1,β〉,〈2,α〉,〈2,β〉,〈3,α〉,〈3,β〉}
A×A={〈α,α〉,〈α,β〉,〈β,α〉,〈β,β〉}
B×B={〈1,1〉,〈1,2〉,〈1,3〉,〈2,1〉,〈2,2〉,〈2,3〉,〈3,1〉,〈3,2〉,〈3,3〉}
(A×B)&Ccedil;(B×A)=&AElig;
由例题1可以看到(A×B)&Ccedil;(B×A)=&AElig;
我们约定若A=&AElig;或B=&AElig;,则A×B=&AElig;。
由笛卡尔定义可知:
(A×B)×C={〈〈a,b〉,c〉|(〈a,b〉∈A×B)∧(c∈C)}
={〈a,b,c〉|(a∈A)∧(b∈B)∧(c∈C)}
A×(B×C)={〈a,〈b,c〉〉|(a∈A)∧(〈b,c〉∈B×C)}
由于〈a,〈b,c〉〉不是三元组,所以
(A×B)×C ≠A×(B×C)
定理3-4.1 设A,B,C为任意集合,*表示 &Egrave;,&Ccedil;或 – 运算,那么有如下结论:
笛卡尔积对于并、交差运算可左分配。即:
A×(B*C)=(A×B)*(A×C)
笛卡尔积对于并、交差运算可右分配。即:
(B*C) ×A=(B×A)*(C×A)
证明
¤ 当*表示 &Egrave;时,结论(1)的证明思路:(讨论叙述法)
先证明A×(B &Egrave; C)&Iacute;(A×B) &Egrave; (A×C) 从<x,y>;∈A×(B&Egrave;C)出发,推出<x,y>;∈(A ×B) &Egrave; (A×C)
再证明(A×B) &Egrave; (A×C) &Iacute; A×(B &Egrave; C)
从<x,y>;∈(A×B) &Egrave; (A×C)出发,推出<x,y>;∈A×(B&Egrave;C)
当*表示 &Egrave;时,结论(2)的证明思路:(谓词演算法) 见P-103页。¤
定理3-4.2 设A,B,C为任意集合,若C ≠ F,那么有如下结论:
A&Iacute;B&Ucirc;(A×C &Iacute;B×C) &Ucirc; (C×A&Iacute;C×B) ¤
定理前半部分证明思路 :(谓词演算法)
先证明A&Iacute;B &THORN; (A×C&Iacute;B×C)
以A&Iacute;B 为条件,从<x,y>;∈A×C出发,推出<x,y>;∈B×C
得出(A×C&Iacute;B×C)结论。
再证明(A×C &Iacute;B×C) &THORN; A&Iacute;B
以C≠F为条件,从x∈A出发,对于y∈C,利用&THORN;附加式,推出x∈B
得出(A&Iacute;B)结论。见P-103页。¤
定理
3-4.3 设A,B,C,D为任意四个非空集合,那么有如下结论:
A×B &Iacute; C×D的充分必要条件是A&Iacute; C,B&Iacute; D
¤证明思路:(谓词演算法)
先证明充分性:A×B &Iacute; C×D &THORN; A&Iacute; C,B&Iacute; D
对于任意的x∈A、y∈B,从<x,y>;∈A×B出发,利用条件A×B&Iacute; C×D, <x,y>;∈C×D,推出x∈C, y∈D。
再证明必要性:A&Iacute; C,B&Iacute; D &THORN;A×B&Iacute; C×D
对于任意的x∈A、y∈B,从<x,y>;∈A×B出发,推出<x,y>;∈C×D。
直积
笛卡尔(Cartesian Product)乘积又叫直积。设A、B是任意两个集合,在集合A中任意取一个元素x,在集合B中任意取一个元素y,组成一个有序对(x,y),把这样的有序对作为新的元素,他们的全体组成的集合称为集合A和集合B的直积,记为A×B,即A×B={(x,y)|x∈A且y∈B}。

3程序代码编辑本段回目录

C#源代码
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Linq;
public class Descartes
{
public static void run(List<List<string>> dimvalue, List<string> result, int layer, string curstring)
{
if (layer < dimvalue.Count - 1)
{
if (dimvalue[layer].Count == 0)
run(dimvalue, result, layer + 1, curstring);
else
{
for (int i = 0; i < dimvalue[layer].Count; i++)
{
StringBuilder s1 = new StringBuilder();
s1.Append(curstring);
s1.Append(dimvalue[layer][i]);
run(dimvalue, result, layer + 1, s1.ToString());
}
}
}
else if (layer == dimvalue.Count - 1)
{
if (dimvalue[layer].Count == 0) result.Add(curstring);
else
{
for (int i = 0; i < dimvalue[layer].Count; i++)
{
result.Add(curstring + dimvalue[layer][i]);
}
}
}
}
}
程序使用说明
(1)将每个维度的集合的元素视为List<string>,多个集合构成List<List<string>> dimvalue作为输入
(2)将多维笛卡尔乘积的结果放到List<string> result之中作为输出
(3)int layer, string curstring只是两个中间过程的参数携带变量
(4)程序采用递归调用,起始调用示例如下:
List<string> result = new List<string>();
Descartes.run(dimvalue, result, 0, "");
即可获得多维笛卡尔乘积的结果。

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: 笛卡尔乘积

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

您希望联系哪位客服?(单击选择)