笛卡尔乘积,数学几何概念

更新时间:2022-10-24 15:43:38 阅读: 评论:0

背景

笛卡尔1596年3月31日生于法国土伦省莱耳市的一个贵族之家,笛卡尔的父亲是布列塔尼地方议会的议员,同时也是地方法院的法官,笛卡尔在豪华的生活中无忧无虑地度过了童年。

笛卡尔1612年到普瓦捷大学攻读法学,四年后获博士学位。1616年笛卡尔结束学业后,便背离家庭的职业传统,开始探索人生之路。他投笔从戎,想借机游历欧洲,开阔眼界。

在荷兰长达20多年的时间里,笛卡尔对哲学、数学、天文学、物理学、化学和生理学等领域进行了深入的研究,并通过数学家梅森神父与欧洲主要学者保持密切联系。他的主要著作几乎都是在荷兰完成的  。

1628年,笛卡尔写出《指导哲理之原则》,1634年完成了以哥白尼学说为基础的《论世界》。书中总结了他在哲学、数学和许多自然科学问题上的一些看法。1637年,笛卡尔用法文写成三篇论文《折光学》、《气象学》和《几何学》,并为此写了一篇序言《科学中正确运用理性和追求真理的方法论》,哲学史上简称为《方法论》,6月8日在莱顿匿名出版。1641年出版了《形而上学的沉思》,1644年又出版了《哲学原理》等重要著作。

1649年冬,笛卡尔应瑞典女王克里斯蒂安的邀请,来到了斯德哥尔摩,任宫廷哲学家,为瑞典女王授课。由于他身体孱弱,不能适应那里的气候,1650年初便患肺炎抱病不起,同年二月病逝。终年54岁。1799年法国大革命后,笛卡尔的骨灰被送到了法国历史博物馆  。

定义

设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成有序对,所有这样的有序对组成的集合叫做A与B的笛卡尔积,记作.笛卡尔乘积

笛卡尔积的符号化为:

例如,,则

运算性质

1.对任意集合A,根据定义有

2.一般地说,笛卡尔积运算不满足交换律,即

3.笛卡尔积运算不满足结合律,即

4.笛卡尔积运算对并和交运算满足分配律,即

相关案例

给出三个域:

D1=SUPERVISOR ={ 张清玫,刘逸 }

D2=SPECIALITY={计算机专业,信息专业}

D3=POSTGRADUATE={李勇,刘晨,王敏}

则D1,D2,D3的笛卡尔积为D:

{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),

(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),

(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),

(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),

(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }

这样就把D1,D2,D3这三个集合中的每个元素加以对应组合,形成庞大的集合群。

本个例子中的D中就会有2X2X3个元素,如果一个集合有1000个元素,有这样3个集合,他们的笛卡尔积所组成的新集合会达到十亿个元素。假若某个集合是无限集,那么新的集合就将是有无限个元素。

程序代码

C#源代码

using System;

using System.Collections;

using System.Collections.Generic;

using System.Text;

using System.Linq;

public class Descartes

{

public static void run(Listu003e dimvalue, List result, int layer, string curstring)

{

if (layer u003c dimvalue.Count - 1)

{

if (dimvalue[layer].Count == 0)

run(dimvalue, result, layer + 1, curstring);

el

{

for (int i = 0; i u003c dimvalue[layer].Count; i++)

{

StringBuilder s1 = new StringBuilder();

s1.Append(curstring);

s1.Append(dimvalue[layer][i]);

run(dimvalue, result, layer + 1, s1.ToString());

}

}

}

el if (layer == dimvalue.Count - 1)

{

if (dimvalue[layer].Count == 0) result.Add(curstring);

el

{

for (int i = 0; i u003c dimvalue[layer].Count; i++)

{

result.Add(curstring + dimvalue[layer][i]);

}

}

}

}

}

程序使用说明

(1)将每个维度的集合的元素视为List,多个集合构成Listu003e dimvalue作为输入

(2)将多维笛卡尔乘积的结果放到List result之中作为输出

(3)int layer, string curstring只是两个中间过程的参数携带变量

(4)程序采用递归调用,起始调用示例如下:

List result = new List();

Descartes.run(dimvalue, result, 0, );

即可获得多维笛卡尔乘积的结果。

本文发布于:2022-10-24 15:43:38,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/83/364953.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:X舰队
标签:笛卡尔乘积
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图