精华内容
下载资源
问答
  • 关于笛卡尔树及Treap线性构造法

    千次阅读 2016-04-06 20:08:01
    现在将介绍笛卡尔线性构造法。线性构造维护笛卡尔树从根开始一直往右走那一条链,这个用单调栈维护。 每次往栈顶右儿子加点。 然后类似treap一样,就是模拟treap旋转。 可以看代码理解。fo(i,1,n){ j=...

    前言

    大家到知道笛卡尔树。
    而且我们也可以把treap当作笛卡尔树。
    现在将介绍笛卡尔树的线性构造法。

    线性构造

    维护笛卡尔树从根开始一直往右走的那一条链,这个用单调栈维护。
    每次往栈顶的右儿子加点。
    然后类似treap一样,就是模拟treap的旋转。
    可以看代码理解。

    fo(i,1,n){
            j=0;
            while (top&&fix[i]<fix[sta[top]]){
                right[sta[top]]=j;
                j=sta[top];
                left[i]=sta[top];
                top--;
            }
            if (top) right[sta[top]]=i;
            sta[++top]=i;
        }

    由于我比较懒所以没有详细介绍。
    可以看这里,有图非旋转treap及可持久化

    展开全文
  • 我们继续介绍笛卡尔的经典著作《第一哲学沉思录》。前面我们分别介绍笛卡尔的“心物二元论”,心灵的本质是思维,而物质的本质是广延。今天我们聊聊另外一个重要的问题,那就是这本书的副标题说的:证明上帝存在...

    大家好,这里是小播读书。今天我们继续分享法国著名的哲学家,笛卡尔的思想。我们继续介绍笛卡尔的经典著作《第一哲学沉思录》。前面我们分别介绍了笛卡尔的“心物二元论”,心灵的本质是思维,而物质的本质是广延。今天我们聊聊另外一个重要的问题,那就是这本书的副标题说的:证明上帝存在以及人的灵魂不死。

    115de7f44cf47a81abcf3a88125f305b.png

    看笛卡尔是如何证明上帝是存在的?关于上帝的存在,在今天看来,其实有点荒谬,但在17世纪的欧洲,对于上帝的信仰是最基本的信仰。但笛卡尔并不是从神学的角度证明上帝的存在,而是从哲学甚至是用数学逻辑推理方法去证明了上帝的存在。让我们来看看他是如何做到的吧。

    笛卡尔证明上帝的存在,是建立在两个普遍原则之上:“观念的客观实在性”和“实在性的因果原则”。这两个词非常哲学化,我们慢慢来聊。笛卡尔把我们的人的思想分为三类:观念;情感或意志;判断。

    前面我们讲过了,观念有三种:捏造的、外来的、天生的。

    第一种捏造的:比如我们想象一个长了两个翅膀的白马;比如古希腊的九头怪等等。

    第二种外来的,是来自于外界物体的观念,比如我们看到一本书,就会产生对书的观念,看到一辆车就会产生对车的观念,但是远古人类并没有看过电脑,因此他们并不会有电脑的观念。

    第三种是天生的或者说天赋的,也可以称之为抽象的观念,就像我们说的三角形或者其他抽象的概念,这些概念作者称之为天赋概念,它们并不依附于心灵,它需要依附一个实体,而这个实体显然不是精神性的而是物质性的,因此这类观念是存在的。而且比第二类来自外部世界物体的投影所产生的观念更加真实和客观。这是为什么呢?

    acb2f7dcfe326e4ebb168f562fbb825a.png

    比如太阳,我们发现我心里有两个不同的观念,一个观念是来源于外在对象的投影,也就是基于外在太阳这个对象在我们内心的投射,这个对象的观念告诉我们太阳比地球小很多。但另外一个观念是基于天文学的知识,天文学的知识告诉我们,太阳实际上比地球要大很多倍。那哪一种观念更正确呢?理性告诉我们,当然是基于天文学的知识理论更正确。笛卡尔将外在太阳投射到我们内心的观念,称之为“有限实体的观念”,而来自天文学或者别的什么地方的理性的观念,称之为“无限实体观念”。显然无限实体的客观实在性,要比有限实体更多。

    然而,重点来了,在笛卡尔心中,有一个至高无上、永恒的、全知全能的、创造一切的“上帝”的观念。这个观念比起有限实体的观念要更加客观和实在。这是我们目前得出的一个重要结论。

    0acb3edfc2bb3e230d6efe94a36a7bba.png

    接下来,让我们看看“实在性的因果原则”。笛卡尔说,在哲学界有一个古老的原则就是“原因不得小于结果”,这是为什么呢?因为结果是原因导致的,是原因中的某些东西导致了结果,所以结果不可能大于原因。比如一桶水的容量是有限的,而从桶里面倒出的水量不可能超过这个桶里的水量。所以,基于这个原则,如果任何事物都必须要有一个原因,而且不可能出现:结果比原因中包含着更多实在性的情况,即:结果不能比原因更完满。

    基于这个推理,笛卡尔在“我思故我在”中唯一确认的“在思考的我”,显然是有限的实体,但就是在这个有限的实体“我”之中却有一个无限观念“上帝”。根据实在性的因果原则,有限的“我”不可能作为无限观念的原因,一个无限观念的原因只能是一个无限的实体,那个无限的实体是什么呢,只能是:上帝。是上帝才有能力,把无限的观念赋予了我们的内心。

    因此,笛卡尔得出了:上帝作为无限实体存在的结论。换句话说,上帝是一个真实的存在,而且是全知全能完满的存在。

    0f66684acae1679849592a735cd15c2f.png

    笛卡尔除了从有限的实体,推出无限的实体上帝,他还从不完美的自我的存在,推出了完美的上帝的存在,以及从至善的观念推导出至善的上帝等等。总之,笛卡尔通过多种方式,从各个方面推理论证了,上帝是完美、至善、无限的存在,上帝也是一切真理的基础。但显然在笛卡尔这里,上帝已经不是神学或者纯粹宗教中想象的上帝,而有一些逻辑论证的基础。

    好了,这个笛卡尔哲学思想系统文章就到这里了,在这几篇文章中,我们介绍了笛卡尔的心物二元论,也介绍了笛卡尔的名著《方法论》和《第一哲学沉思录》,笛卡尔堪称是17世纪欧洲哲学界和科学界最有影响的巨匠之一,被誉为“近代科学的始祖”,也被认为是欧洲近代哲学的奠基人,黑格尔称他为“近代哲学之父”。笛卡尔也开启了西方理性主义哲学。

    好了,今天的内容就是这些,如果喜欢我的内容,请关注小播读书,我们下一篇文章见。

    展开全文
  • 关于笛卡尔积 理解: 1、 不写on肯定是笛卡尔积,on条件复杂也会。有on条件,且简单一般就避免了 2、 a join b on 条件 不加查询条件 肯定会出现笛卡尔积 避免方式就是加上条件 把不符合去掉 3、介绍一款写SQL...

    关于笛卡尔积 理解:

    1、 不写on肯定是笛卡尔积,on条件复杂的也会。有on条件,且简单的一般就避免了

    2、 a join b on 条件
    不加查询条件 肯定会出现笛卡尔积 避免方式就是加上条件 把不符合的去掉

    3、介绍一款写SQL神器:–DataGrip 工具
    在这里插入图片描述

    展开全文
  • 本篇文章丢丢哥主要介绍下explain基本使用以及作用和关于命中主键索引、唯一索引以及普通索引命中规律以及实例,让大家对于数据库设计以及索引设计有更高层次认识,下篇博客将主要介绍复合索引命中率规律及...

    本篇文章丢丢哥主要介绍下explain的基本使用以及作用和关于命中主键索引、唯一索引以及普通索引的命中规律以及实例,让大家对于数据库设计以及索引设计有更高层次的认识,下篇博客将主要介绍复合索引命中率规律及设计原则。首先我们先要普及一下,索引加了有好处,也有弊处;索引可以加,但是不能加太多,不然在增删改时性能就太弱了;我们首先不讨论这个,只说在有必要加部分索引的情况下怎么让他们效率更高,加了就能提升性能,而不是盲目的加,或者加了因为复杂语句的缘故也还是扫表或者笛卡尔积了。

    在实际产品开发中,索引原则上是在产品相对稳定,项目上线前给一波索引最好了,然后根据后端语言查询业务的语句进行一条条检测分析,如果基本都命中了(特别是大表)一定要检查细心。

    explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

    一、准备工作首先我们准备一个简单的表测试,用最简单的例子让大家入门!7516dc639808e43bfed2f4b88b6db11e.png

    注意这里我们只给了 id为主键索引,uid和username为唯一索引,其他的暂时不设置添加几条简单的数据7a9241525b0b8b4891fa3765bb8bc463.png使用方法,在select语句前加上explain就可以了: explain select username,password,addtime from data_admin_user where id=2;

    在Navicat 可视化工具中能看到Result1里面给我们返回了一个列表b9b7bad9d2f2cca39f994a2a54f37e33.png

    基本理论的了解

    Explain通俗的解释:

    字段解释描述

    idSELECT识别符。这是SELECT的查询序列号

    select_typeSELECT类型,可以为以下任何一种:

    - SIMPLE:简单SELECT(不使用UNION或子查询)

    - PRIMARY:最外面的SELECT

    - UNION:UNION中的第二个或后面的SELECT语句

    - DEPENDENT UNION:UNION中的第二个或后面的SELECT语句,取决于外面的查询

    - UNION RESULT:UNION 的结果

    - SUBQUERY:子查询中的第一个SELECT

    - DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询

    - DERIVED:导出表的SELECT(FROM子句的子查询)

    table输出的行所引用的表

    type联接类型:下面给出各种联接类型,按照从最佳类型到最坏类型进行排序:

    - system:表仅有一行(=系统表)。这是const联接类型的一个特例。

    - const:表最多有一个匹配行,它将在查询开始时被读取。因为仅有一行,在这行的列值可被优化器剩余部分认为是常数。const表很快,因为它们只读取一次!

    - eq_ref:对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。

    - ref:对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取。

    - ref_or_null:该联接类型如同ref,但是添加了MySQL可以专门搜索包含NULL值的行。

    - index_merge:该联接类型表示使用了索引合并优化方法。

    - unique_subquery:该类型替换了下面形式的IN子查询的ref: value IN (SELECT primary_key FROM single_table WHERE some_expr) unique_subquery是一个索引查找函数,可以完全替换子查询,效率更高。

    - index_subquery:该联接类型类似于unique_subquery。可以替换IN子查询,但只适合下列形式的子查询中的非唯一索引: value IN (SELECT key_column FROM single_table WHERE some_expr)

    - range:只检索给定范围的行,使用一个索引来选择行。

    - index:该联接类型与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小。

    - ALL:对于每个来自于先前的表的行组合,进行完整的表扫描。

    possible_keys指出MySQL能使用哪个索引在该表中找到行

    key显示MySQL实际决定使用的键(索引)。如果没有选择索引,键是NULL。

    key_len显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL。

    ref显示使用哪个列或常数与key一起从表中选择行。

    rows显示MySQL认为它执行查询时必须检查的行数。多行之间的数据相乘可以估算要处理的行数。

    filtered显示了通过条件过滤出的行数的百分比估计值。

    Extra该列包含MySQL解决查询的详细信息

    - Distinct:MySQL发现第1个匹配行后,停止为当前的行组合搜索更多的行。

    - Not exists:MySQL能够对查询进行LEFT JOIN优化,发现1个匹配LEFT JOIN标准的行后,不再为前面的的行组合在该表内检查更多的行。

    - range checked for each record (index map: #):MySQL没有发现好的可以使用的索引,但发现如果来自前面的表的列值已知,可能部分索引可以使用。

    - Using filesort:MySQL需要额外的一次传递,以找出如何按排序顺序检索行。

    - Using index:从只使用索引树中的信息而不需要进一步搜索读取实际的行来检索表中的列信息。

    - Using temporary:为了解决查询,MySQL需要创建一个临时表来容纳结果。

    - Using where:WHERE 子句用于限制哪一个行匹配下一个表或发送到客户。

    - Using sort_union(...), Using union(...), Using intersect(...):这些函数说明如何为index_merge联接类型合并索引扫描。

    - Using index for group-by:类似于访问表的Using index方式,Using index for group-by表示MySQL发现了一个索引,可以用来查 询GROUP BY或DISTINCT查询的所有列,而不要额外搜索硬盘访问实际的表。

    比较概括的理论我们看完了,下面开始正菜!

    三、索引命中实例

    1.主键索引 搜索(id)explain select* from data_admin_user where id=2;8f167430b57ca534d2c549b40c871cbf.png

    结果命中type联接的优化程度已经很高了

    命中的key也主键索引,长度4,是因为我起的字段类型为int占4个二进制位

    查一行便能查到数据

    2.普通索引 搜索(uid)explain select* from data_admin_user where uid='369d86744b96ee7170762721424415e7';2b348ae04a39300f06503ad9ca50148a.png结果

    结果命中type联接的优化相比较主键降了两级但是优化程度也很高

    命中的key也普通索引,长度96,是因为我起的字段类型为char 32

    查一行便能查到数据

    3.唯一索引 搜索(username)explain select* from data_admin_user where username='admin';b1a48a16361e8f92be6405c55770ed99.png结果

    结果命中type联接的优化程度已经很高了(与主键一致)

    命中的key也主键索引,长度50,是因为我起的字段类型为varchar 16

    查一行便能查到数据

    4.无索引 搜索(addtime)explain select* from data_admin_user where addtime="12312312353";5d5de542728aadf05d5d6bf379f0f475.png

    结果未命中(扫表)type联接的ALL,最低下的效率

    key未命中全部为空

    查询到所有数据才能得到答案(测试库中共4条数据)

    5.主键索引 + 无索引 搜索(id + addtime)explain select* from data_admin_user where id=4 and addtime="12312312353";2559284a0859b972ce8927634947cabd.png结果

    结果命中(情况与单主键索引相同)type联接的已经最高

    命中的key也主键索引,长度4,是因为我起的字段类型为int占4个二进制位

    查一行便能查到数据

    6.普通索引  模糊 搜索(uid like)explain select* from data_admin_user where uid like "%123%";1a46330ff54f0792f14df8837c929390.png

    结果未命中(扫表)type联接ALL(扫整表)

    命中的key空,未命中

    查询了所有数据

    7.普通索引  + 无索引 搜索(uid like)explain select* from data_admin_user where uid="12332112221" and password="671c9a9b0a74cd26cdcda3ac0bfa5972";

    结果命中(与单普通索引一致)type联接的优化相比较主键降了两级但是优化程度也很高

    命中的key也普通索引,长度96,是因为我起的字段类型为char 32

    查一行便能查到数据

    h好了,简单的例子就做到这里,没试明白的可以继续组合试试,总而言之言而总之,只要有索引条件的语句 ,基本上都能命中,但是带索引条件的大于小于,或者区间、模糊的条件就算是主键或唯一索引的搜索都不一定100%能命中了。

    1.留给大家一个思考的问题,如果是复合索引(多个字段在一个普通索引里)命中规律又是怎么样的呢 ?

    2.主键索引,唯一索引,普通索引,复合索引再混合上多表的复杂查询下,索引的命中率又会怎么样呢 ?后面的博客,丢丢哥将会为大家一一分析。

    希望我的博客对你们有所帮助,你的认可就是我最大的动力。。

    本文为作者原创,允许转载,转载后请以链接形式说明文章出处.

    如转载但不标明来源,后果自负。

    展开全文
  • 霍夫变换详细介绍

    千次阅读 多人点赞 2019-01-05 16:18:28
    一、霍夫变换(Hough) A-基本原理一条直线可由两个点A=(X1,Y1)和B=(X2,Y2)确定(笛卡尔坐标)另一方面,也可以写成关于(k,q)函数表达式(霍夫空间):对应变换可以通过图形直观表示:变换后空间成为霍夫空间...
  • “我思故我在。” ——卡笛尔 0 动机 在这篇文章里,将给大家介绍一下心形线及其...《数学的故事》里面说到了数学家笛卡尔的爱情故事。笛卡尔于1596年出生在法国,欧洲大陆爆发黑死病时他流浪到瑞典。1649...
  • 选题具体方法.doc

    2020-12-26 10:31:58
    选题具体方法 17世纪法国著名思想家笛卡尔曾经说过:“最有价值知识是关于方法知识。”要选好毕业论文题目,只了解选题原则还不够,还需要了解和掌握选题一些具体方法。 一、尽快确定毕业论文选题...
  • 毕业论文选题具体方法 17世纪法国著名思想家笛卡尔曾经说过:“最有价值知识是关于方法知识。”要选好毕业论文题目,只了解选题原则还不够,还需要了解和掌握选题一些具体方法。 一、尽快确定毕业论文...
  • 数据可视化常见方法关于数据可视化指示器折线图条形图列图表饼状图面积图数据透视表散点图气泡图树形图极坐标图区域地图/散点图漏斗图鱼眼/笛卡尔变形 关于数据可视化 数据可视化,是关于数据视觉表现形式科学...
  • 欢迎关注微信公众号《不想做科学家工程师...考虑沿一条一定宽度道路行驶,以道路中心线为参考线,要使行驶轨迹曲率尽量小,应该有随行驶距离s增加,笛卡尔坐标下x、y关于s二阶导、三阶导需要足够小,即尽...
  • 欢迎关注微信公众号《不想做科学家工程师...考虑沿一条一定宽度道路行驶,以道路中心线为参考线,要使行驶轨迹曲率尽量小,应该有随行驶距离s增加,笛卡尔坐标下x、y关于s二阶导、三阶导需要足够小,即尽...
  • 在下文中,我将讨论将时间序列相关结构(尤其是股票价格)转换为抽象3d笛卡尔空间中配置动机和问题,以便对其之间统计关系进行整体可视化。 我将对软件包依赖项进行一些说明,然后再链接它们各自文档...
  • 3D数学学习记录一

    2018-03-15 14:09:23
    2D (笛卡尔坐标系):关于平面数学。 由2个平行或相交数轴组成,并且两条数轴度量单位相同。 3D (空间直角坐标系):由3个2D笛卡尔坐标系组成。 右手坐标系:3D笛卡尔坐标系,OpenGL 左手坐标系:...
  • BI技巧丨粒度切换

    2020-12-31 12:53:59
    白茶在很久之前,写过关于笛卡尔两个函数。 GENERATE函数与CROSSJOIN函数。 传送门:《笛卡尔积》 那么这两个函数之间具体区别是什么呢?在实际用途中区别呢? 本期白茶来解释一下二者之间核心点:上下文...
  • LINGO软件学习

    2009-08-08 22:36:50
    现在我们将深入介绍如何创建集,并用数据初始化集属性。学完本节后,你对基于建模技术集如何引入模型会有一个基本理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力基本构件。借助于集...
  • 上次新霸哥和大家讲解了一些关于oracle的知识发现大家对oracle还是比较感兴趣的,下面...今天,新霸哥将在此给大家做一个详细的介绍。  多表连接查询  连接多表  1. 笛卡尔积  在没有任何过滤条件的...
  • bzoj2342

    2014-08-12 20:03:00
    shoi题目好坑爹 首先自己测发现这道题如果用后缀数组+rmq处理每个点回文串能延伸长度的话会TLE (当然我用的是倍增+ST的方法,如果用三分构建后缀数组+笛卡尔树处理rmq我就不知道了);...具体的介绍:http://...
  • 这一章为以后三维几何变化做了一个很好铺垫,在基本矩阵组合应用中详细讲述不同笛卡尔坐标系之间如何转换,消除了困扰我很久的关于局部坐标系如何转换到世界坐标系疑惑。另外,这一章大量用到线性代数知识...
  • poj3264_RMQ_ST

    2019-07-15 20:38:11
    这个题昨天做过,但是今天使用是RMQ_ST算法,网上关于RMQ还有中笛卡尔算法,今天我用是ST算法,这个算法很给力,在初始化之后可以在O(1)时间内求出最大值和最小值。 先简要介绍一下ST算法,ST算法需要...
  • , 更多细节在本书中会介绍,这里我们只是简略说明用语法画图对用纸笔画图来说在思维上优越性;前者是说话,后者是说字。, 发展历程, ggplot2是Hadley在爱荷华州立大学博士期间作品,也是他博士论文主题之一...
  • 7.4 生成两个或者更多表的笛卡尔乘积 239 7.5 认证小结 242 7.6 本章测试题 243 7.6.1 自测题 243 7.6.2 实验题 246 7.6.3 自测题答案 246 7.6.4 实验题答案 247 第8章 使用子查询解决问题 249 8.1 定义子...
  • SQL语法大全

    2014-03-30 11:00:11
    Recordset对象Open方法CursorType参数表示将以什么样游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: ----------------------------------------------------...
  • 本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和...
  • 本书以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...
  • 本书是第II卷,以开发人员在项目开发中经常遇到问题和必须掌握技术为中心,介绍了应用Java进行桌面程序开发各个方面知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

关于笛卡尔的介绍