Ⅰ 算法与逻辑这2个重要概念究竟是哪一门学科领域专门学习的内容
1.问:做哲学为什么需要学习逻辑?答:简单地说,哲学是一门学科,它提供的是理论,它要通过说理、通过论证使人接受或者反驳某种观点、理论,这就需要有正确的论证。逻辑研究有效推理,就是提供正确论证的基础。实际上,凡是理论,用推理,讲论证,都离不开逻辑。从这点看,哲学与其他“学”相同,所以逻辑是基础学科。但是哲学与其他学科相比,有两个特点,这使得这哲学中论证更为重要,因而逻辑的作用也更为重要。第一个特点,哲学不是经验科学。尽管经验可以给我们提供某些启示,来自于经验的知识可以作为哲学思考的某种根据,但是哲学命题不能通过经验来验证,不能做实验,所以,一个哲学理论的“正确性”(是否可接受),几乎只能靠论证来显示。历史上,一些哲学理论后来不被接受了,以另外的形式出现了,是因为发现原来论证有问题,对原来的理论有修正,有新的论证;也有一些理论一开始人们不喜欢,如休谟的经验论,后来却不得不接受(当然不是所有人都接受),因为它的论证没法反驳,有人甚至是乐于接受,因为认为它的论证好。第二个特点,哲学与其他学科不同,它要思考“终极”问题,即各门具体学科都不研究或无法研究的问题,比如什么是物质,什么是实在,什么是精神等本体论和认识论的问题。对这类问题的思考,会使论证更加困难。学过亚里斯多德逻辑,我们知道,有属加种差的定义。例如,人是某种动物,动物是某种生物,这就是属加种差的定义对什么是人和动物的回答。如果继续追问,什么是生物,大概还可以说,生物是某种物质,但是如果再问什么是物质?至少按这种方式已不能回答,需要有上一层的概念体系。一般来说,探求这样的终极问题,概念体系不容易建立,而且容易出现某种循环,比如康德二律背反那样的东西。在对这样的问题进行思考时,在对这些问题的观点论证、提出相应理论时,我们应该遵从什么法则?有什么规律?这些都对论证,也是对逻辑,提出了更高的要求。我们知道,现在我们所说的逻辑学产生于古希腊,始于亚里斯多德。为什么逻辑学产生于古希腊,有几个原因。一是民主政治,导致论辩风盛行。要辩论,要说理,就要讲逻辑。二是欧几里得几何学,提供了一个理论应该如何应用逻辑的典范。还有一个非常重要的原因,就是哲学研究。我认为是亚里斯多德主要是在其哲学研究中,也是为了更好地研究哲学,建立了逻辑学。他对于(事物)本质问题的思考等,使他提出上面提到的定义理论,建立了三段论逻辑。从这段历史来看,可以说,因为哲学和论证的关系,对逻辑提出了更高的要求,所以逻辑学才如此这般地产生了。所以,逻辑从一开始,就和哲学有密不可分的关系。以上所说的中心意思是,哲学的生命力在于论证,我们的哲学观点和理论可以不同,但是论证方法必须是相同的,不论自己思考问题还是与人交流,都需要有公共的论证平台,而这个平台应该、也只能由逻辑来搭建。在今天,哲学已经大大发展,但是哲学和逻辑的基本关系没有改变。只是今天的哲学需要什么样的逻辑?这是个有意思的问题,亚里斯多德逻辑显然完全不够了,需要今天的哲学家和逻辑学家共同关注。关于逻辑和哲学的关系,当年王浩来北大讲学时还提出一种观点。大意是,关于哲学问题的基本观点,大家很难统一。对此我们可以采取公理化的方法,各自从自己的基本观点出发,建立相应的理论系统,类似于古典数学和直觉主义数学。我认为这当然不是哲学研究的全部,但应该也是哲学研究的一个重要方面。如何使自己的理论更严密,需要有公理化的思想和方法。历史上斯宾诺莎曾经做过伦理学的公理化研究,大概不是很成功。今天逻辑学的发展是否对此提供了新的基础?这就需要学习现代逻辑。2.问:中国哲学也需要逻辑吗?答:回答这个问题,首先要对“逻辑”这个概念作点说明。我们现在所说的逻辑,指的是上面提到的产生于古希腊的逻辑。就连“逻辑”一词都是从古希腊语到英语、再到汉语译音而来。为什么要这样,因为中国自己的文化中没有产生出西方逻辑学意义上的逻辑学。中国古代有名辨学等一些在今天被人们作为中国逻辑史研究对象的理论或学说。从哲学和逻辑的关系看,如果说古希腊哲学有亚里斯多德逻辑与之对应,那么中国哲学是否也可以说有名辨学这样的学说与之对应?有这个背景,再看我们的问题,“中国哲学也需要逻辑吗”,应该是,研究中国哲学或中国哲学研究需要西方的逻辑学吗?这里有两个问题。如果是研究中国哲学,即以中国哲学为研究的对象,提出自己的研究成果,提出相应的理论和观点,那么,与其他研究类似,也要分析、推理、论证,当然也离不开西方的逻辑学。因为只有西方传统的逻辑学才在今天成为各学科的基础。但是,如果是做中国哲学研究,或中国哲学式的研究,即用中国哲学的方法研究中国哲学的问题,比如类似于老子,孔子的研究,是否要用西方的逻辑学,我还看不出有这个必要。从西方逻辑学的观点看,今天仍然难以完全说清中国的古代哲人究竟是用什么逻辑思考问题的。这个说法需要作点解释。中国哲学和西方哲学有很大的区别。这一点,从各自关心的问题和研究问题的方式可以看出来。西方哲学开始关心的问题是世界的本源是什么,这个关心的目的是要把面对的万事万物拆开,找基本的组成部分,或面对复杂纷呈的世界找出基本的性质,再将它们的组合起来,希望从这里说明一切现象,同时也获得了改造自然的手段。从简单的、基本的部分或性质开始,通过组合,到说明各种复杂现象,解决复杂问题,这就是西方哲学的精神,也是西方逻辑的精神,他们在这个探讨过程中建立了逻辑学,而且也是在这个过程中建立了西方科学。西方的哲学、逻辑学、科学属于同一个文化体系。中国哲学也有关心世界本源的部分,但地是从社会的角度考虑问题,探讨社会的秩序、和谐,讲究天人合一,同时也是为个人的自我修养和人生指导提供依据。从世界和社会的宏观出发到个人的修养,从个人的修养再到社会的和谐和秩序,这里面有许多非组合的东西,与西方逻辑的精神从文化渊源上看有根本的区别。所以,在这个问题上,我倒是不觉得中国哲学式的研究要用到西方的逻辑学。说到这里,插一句,我想中国哲学的逻辑是什么,这也许是个更有趣的问题。显然这需要中国哲学和逻辑学两方面的结合才有可能研究。当然,今天也很难有人还会按古人的方式去思考他们的哲学问题。不论从学习阶段就受到的训练,还是到后来的学术规范和科研体制,都决定了不会再出老子和孔子那样的思想家。现在作为学术的最基本要求是要说理,要论证,要交流,还是上面说到的,要有公共的论证平台。从这个意义上说,中国哲学大概也需要西方的逻辑学。3.问:传统逻辑和现代逻辑的区别是什么?答:我注意到你们的几个类似问法或问题,因为你们的采访在我们中心(北京大学逻辑、语言与认知研究中心)的网上登了出来,而且有了一段时间。这些问题是:(1)普通逻辑和现代逻辑的区别是什么?(2)数理逻辑和普通逻辑有什么区别?(3)逻辑学导论和一阶逻辑的区别是什么?还有现在的问题,(4)传统逻辑和现代逻辑的区别是什么?我想先做一点说明,也是澄清。这里涉及到关于逻辑的一些名词。首先,逻辑是一种客观对象,逻辑学是关于这个对象的科学,就像力是一种客观对象,力学是关于力这种对象的科学一样。“逻辑”有时也指逻辑学。逻辑本身没有现代和传统之分,也没有普通和不普通之分,只是逻辑学,作为人们对逻辑这个对象研究的成果,受到历史条件的限制,才有传统和现代之分,有不同的历史形态。“现代逻辑”和“传统逻辑”指的就是这种意义上的逻辑学。关于“普通逻辑”。首先,从对象的层次看,刚才说了,没有普通和不普通之分,也就是说没有普通逻辑这种逻辑,其次,从研究的角度看,也没有对逻辑这种对象的“普通”的研究,所以,是既没有普通逻辑(这种逻辑),也没有普通逻辑学。“普通逻辑”只能是课程的名称,类似于“普通物理”。这一点也是王宪钧先生当年一再强调的。拿“普通逻辑”和“普通物理”相比,也是王先生举的例子。为什么要强调这一点,因为“普通逻辑”叫得多了,有一种误解,把普通逻辑也当成了一种逻辑或一种逻辑学,其实,这只是一门课。关于“一阶逻辑”,从对象的层次看,有这样一种逻辑。关于这种逻辑的理论等是一阶逻辑学,通常也称为“一阶逻辑”。此外,还有专门的课程讲授一阶逻辑学,所以它还可以是课程的名称。“数理逻辑”与此类似。在上面提到的这些名称中,“传统逻辑”,“现代逻辑”,指的是某种逻辑学,在一些情况下,“现代逻辑”也可以是某类课程的名称;“普通逻辑”,“逻辑导论”或“逻辑学导论”只能是课程的名称;“一阶逻辑”,“数理逻辑”指的可以是一个或一种逻辑,也可以是这个或这种逻辑的学,还可以指讲授这个或这种逻辑的课程。这里我们涉及到三种名称:逻辑,逻辑学和逻辑课。有这个说明后再来看这些问题。在这些问题中,问题(4)是一个合理的问题,也没有什么歧义,因为在这个问题中,“传统逻辑”和“现代逻辑”只能做逻辑学的理解,问的是两种逻辑学之间的区别,现代的逻辑学究竟比过去的逻辑学有那些发展等。问题(3)的意思应该是比较两门课程,因为“逻辑学导论”是课程的名称,我们也有一阶逻辑的课。如果这么看,这也合理。问题(2)的初衷大概类似于问题(3),但是问题(2)容易引起误解。因为“数理逻辑”可以指一种逻辑,将它与普通逻辑相比,容易使人误解,把普通逻辑也当成了一种逻辑。最不合理的是问题(1)。“普通逻辑”只能是某门课程的名称,现代逻辑是一种逻辑学,这两个“逻辑”不可比。如果把“现代逻辑”理解为课程的名称,那么,它指的不是一门课,凡讲授现代逻辑学知识的课都可以称为现代逻辑课,而普通逻辑只能是一门课。将一门课与一类课相比,这应该也不可比。所以怎么都说不通。现在可以回答你们的问题,即问题(4)。一般认为,从亚里士多德到弗雷格以前的是传统逻辑,从弗雷格开始,产生了现代逻辑。当然在弗雷格之前,也有莱布尼茨、布尔这些现代逻辑的先驱。现代逻辑与传统逻辑的不同首先是产生的原因或动因不同。传统逻辑产生的原因主要是哲学上论证,也包括日常生活中的一些论辩。现代逻辑产生于数学研究,主要为了找出数学中的逻辑。其次是方法的不同,这是主要的不同。学过一点现代逻辑都知道,现代逻辑的基本方法是形式化方法。从根本上说,形式化方法就是数学的方法。因为是一些数学家研究数学中的推理,找数学中的逻辑,所以很自然地引用了数学的方法。从莱布尼茨开始就提出了把推理当作数学演算的想法。这个想法到弗雷格才在一定范围里得以实现。可以实现的原因之一,是弗雷格研究的是数学中的推理,这是我们各种推理中最严格的推理,但同时也是最简单的一种推理。可以实现的原因之二,就是他用到了数学的方法,把数学用到推理的研究中。现在数学(古典数学)中推理的规律已经都找出来了,这就是一阶逻辑。在这个过程中,产生了很多新的思想,建立了许多新的技术,逻辑学的内容大大丰富。如果说过去我们只能靠肉眼观察,那么,现在因为有了新的方法,我们已经知道如何去造显微镜,而且是电子显微镜。与传统逻辑相比,因为有了观察逻辑关系的“电子显微镜”,现代逻辑打开了一个全新的天地,范围大大拓宽。这个天地是传统逻辑用“肉眼”所不可能看见的。因为方法和动因的不同,导致了传统逻辑和现代逻辑其他的一些不同。比如,同是研究日常推理,传统逻辑总结一些方法,教我们这些方法,现代逻辑则要把其中的规律用数学的方法精确地刻画出来,其目的不是教我们人如何正确地进行日常思维,而是“教”计算机去做这样的的推理。现代逻辑的这种发展,使得逻辑学真正成为其他一些学科的基础,比如计算机科学,语言学等,包括哲学方面的分析哲学,语言哲学等。这里所谓的基础,意思是,如果没有现代逻辑的知识,要进行这方面的有关研究是不可能的。这个基础的作用是传统逻辑做不到也不可能做到的。人们一般认为学习逻辑会使人逻辑性强,提高思维能力,表现在头脑清楚,说话有条理,能言善辩等。这被称为逻辑的教导作用。应该说这是逻辑学产生的初衷之一。但在今天看来,如果说,传统逻辑还有一定的教导作用,那么现代逻辑则基本没有这个作用。现代逻辑使得逻辑学越来越像数学,成为专门的基础知识。如果说现代逻辑也有一些教导作用,那么它并也不比数学强。换言之,要想从学习现代逻辑中得到思维能力的提高,更好的法是去学数学。总之,逻辑学的这种教导作用,至少从现代逻辑的内容上看,已经不是今天逻辑学的主要功能。4.问:您认为哲学系本科生应该学普通逻辑课还是现代逻辑的课程?答:关于这个问题,我可能会说得多一些。因为即使在我们北大哲学系,这个问题也是从我的上一代老师、我的前辈们开始就一直在讨论、争论、甚至激烈争论的问题。我认为,应该学什么课,普通逻辑课还是现代逻辑课,取决于两个因素:一个是课程的内容、性质;一个是学习的目的。这是从学生选课的角度说的。换一角度,可以问,哲学系应该对本科生开普通逻辑课还是现代逻辑课?也有两个类似的因素,前一个因素没变,后一个因素是,开什么课取决于培养学生的目标。这是受教育者和教育者都关心的同一个问题,但角度不同。我想我还是从教育者的角度来谈这个问题。现在本科生教育可以说有两个目标,一个是素质教育,一个是专门人才培养。说白了,前者就是毕业后找工作,后者是读研究生,准备走学术的道路。从社会需求的角度看,大部分人是要从事实际工作的,学者总是少数。因此现在比较强调素质教育,淡化专业,所以本科生阶段取消了一些专业,比如我们系的本科生逻辑学专业就取消了。专门人才培养一般要到研究生阶段才真正开始。尽管学生自己可以早早为自己定位,但是从教育者的角度说,并不一开始就把谁定在什么方向。这增加了学生的自主性、能动性,同时也增加了学生自己的责任,学生也要为自己的将来负责。这是社会的进步。与强调素质教育相对应,另一方面,对准备走学术路的人也提出了更高的要求,要求有扎实的基础,有出色的科研能力。这是一种两极分化。一个本科生,刚进大学,很难说将来毕业后的去向,是做实际工作,还是读研究生,最终走学术研究的路。从教育者的角度看,也只能是同时提供各种条件、环境,让受教育者能走更适合自己发展的道路。一个好的大学,就是能提供好的这样的条件和环境,比如开出各种课程和提供好的指导等。现在可以谈谈普通逻辑课和现代逻辑课的问题。简单地说,现代逻辑的课程是为专门人才培养开设的。一个学生如果毕业后从事实际工作,在这方面他所需要的主要是素质教育,我认为不用学现代逻辑,但同时也不用学普通逻辑,倒是可以学学批判性思维这样的课。为什么这么说,我们可以先看看普通逻辑的性质和内容。普通逻辑是我国大学的逻辑知识普及课,内容大体上是亚里斯多德逻辑,即亚里斯多德的三段论、定义理论等,一些简单的命题逻辑知识,再加一些归纳推理的内容,关于论证的常识等,从知识的组成看,基本上是传统逻辑的东西。普通逻辑有一个基本考虑,就是围绕思维来讲。根据这个考虑,它把内容又分为概念,判断,推理,论证几个部分。近二十多年来,随着现代逻辑影响不断增加,普通逻辑课中也逐渐增加了一些现代逻辑的内容,课程的名称也改成逻辑导论,内容和重点有了很大甚至是重要的改变,但普及逻辑知识的课程性质没有变。这样的一门课程,我认为有一些缺点。首先我们可以看一下经过这样的普及课学习,会有什么收获,有什么效果。从课程设置的角度说,不外是希望学生有这几个方面的收获:(1)获得一定的逻辑学知识;(2)掌握一些方法,受到一定的训练,思维能力有某些提高;(3)有了一定的基础,便于继续学习逻辑;(4)以逻辑为基础去进行其他的课程的学习或研究。其中(1)和(2)合起来可以在素质教育方面起到一定的作用。(3)和(4)看起来是可以起到专门人才培养方面的作用。但实际情况究竟怎样,是否可以达到这样的效果,我们可以做一些分析。先看后两条,即人才培养方面的(3)和(4)。首先,传统逻辑和现代逻辑是逻辑学发展的两个阶段。现代逻辑不是从传统逻辑的基础上发展而来的,上面也谈到,完全是新的问题,新的起点,新的方法。现代逻辑对传统逻辑有种跳跃性,而没有什么继承性。从我们的教学实践看,学习传统逻辑对学现代逻辑没有什么帮助,反而可能会有某些误导。如果是为了要继续学习逻辑,这个继续被学的,只能是现代逻辑,所以不如一开始就学现代逻辑。(3)说的是普通逻辑课或逻辑导论课可以作为现代逻辑课的基础,但从这个分析看,情况并非如此。不说有可能误导,至少学习的效率不高。再看(4)。现代逻辑是像数学这样的专门的基础知识,需要按学数学那样方式才能真正掌握,才可能成为用来学习和研究如计算机科学、语言学甚至哲学的知识基础,不能只是停留在普及知识的层次上,浅显地讲讲,象征性地做些习题,而需要详细地讲解,严格地证明,严格地做习题,有些甚至是比较难的习题。这些即使在逻辑导论课上,也不可能做到。所以,希望达到(4)的效果,只能是一个愿望,实际上根本达不到。这两个方面说明,普通逻辑或逻辑导论在逻辑学研究或应用逻辑的专门人才培养方面起不到什么作用。事实上,我们这些年的教学实践上也证明了这一点。就我校来说,这二十多年来上过普通逻辑或逻辑导论课的学生应该达到数以万计,但没有一个学生由此而成为研究逻辑或者应用逻辑去研究其他领域问题的专门人才。这说明什么问题?当然是我们作为教育者一方应该深刻反省的。说到底,主要是课程的性质,普及逻辑知识,这决定了这门课只能是作为文化素养提高的一个方面来教和学,而不是也不能作为其他知识和课程的基础来教和学。说到这里,涉及到这门课的素质教育方面的意义。上面说了它在专门人才培养方面起不到什么作用,现在我们可以就此再看它素质教育的作用方面。前面说到逻辑有教导作用,在这里对应到所希望达到的效果(2)。看起来普通逻辑所讲的问题简单、常见,与实际生活更接近,所以它更具有教导作用,但其实这里有些误解。普通逻辑或逻辑导论都是传统逻辑和现代逻辑的某种结合。关于现代逻辑,前面已经说了,它完全远离了逻辑的教导作用,不是为日常思维服务的,而是一种基础知识。再看传统逻辑部分。这部分中确实有些内容是讲思维方法,讲有关的一些道理。但是在这方面,它有两个不足:一是先天不足,一是后天不足。一般都不否认亚里斯多德逻辑是传统逻辑的核心部分。亚里斯多德逻辑中的核心部分又是三段论。我们可以看看三段论在讲什么。它在讲我们几乎天生就会的三段论推理,比如“所有的A是B,所有的B是C,所以,所有的A是C”,讲这样的的推理为什么是正确的,这样的推理多少种格与式,哪些格式是正确的推理形式,可以如何变形,道理何在等等。这些细致的甚至显得繁琐的分析和证明主要不是为了日常思维的需要,而是为了哲学研究。我想说的是,逻辑学从一开始,就是一种学院派式的理论,这是它的精神实质,而且这种精神一直在延续。应该说,这是真正的逻辑学的精神。所以,亚里斯多德是逻辑学之父,他不仅从问题、对象,而且从方式和精神,都奠定了这门学科的基础。关于日常思维的思维方法等只是这种理论的一些延伸,不是本质的部分。有了理论,可以在思维方法的方面做很多推广。只是方法方面谈多了,谈泛了,实际上就出了这种学的圈。这就是传统逻辑对日常思维方面作用的“先天不足”。作为一门课程,当然可以按照需要设计它的内容,没有必要一定按某种学理精神来讲授。但是,在思维能力提高和训练方面,普通逻辑并没有给我们提供的内容和训练的手段。这是它的“后天不足”。如果要讲思维方法,注重日常思维能力提高,有比普通逻辑更合适的课程,这就是批判性思维。实际上,批判性思维并不是一门逻辑课,但是它的问题更集中,目的也更明确,所以更专业。总体上看,对普通逻辑课,包括逻辑导论,在思想方法和思维能力训练方面,如果是讲思维的严格性,精确性,那不如去学数学。如果是讲思维的敏捷、机智,善抓问题实质的准确性、尖锐性等,不如去学批判性思维。最后,再看希望达到的效果(1),即这门课对逻辑知识的了解和掌握方面的作用。作为知识上的修养,这当然也是一种素质的提高。特别地,对什么是逻辑的精神,通过普通逻辑课或逻辑导论课多少可以了解一些,这应该是一个人知识组成中的重要部分。但是,知识普及性的课不能提供真正实用的技术和理论,这一点应该没什么疑问。我们只要看看逻辑学今天的发展和这些课程所讲授的内容就不难得出这个结论。当然,不论怎样,最后总会对逻辑的精神有一定程度的了解,有一定的逻辑的知识素养,这是大概是这门课最后的收获。对此我想指出一点,从今天的角度看,这也是一种多少有点养尊处优的知识素养,因为它主要不解决实用问题,基本上是精神层面的东西。过去我国大学教育属于计划经济体系,毕业生是国家干部。什么是国家干部,就是国家的管理人员,当然不是人人最后都走上了管理岗位,但首先他们都属于干部体系,有干部级别。大学的一个主要功能是为国家提供干部储备。作为这样的教育,当然要使受教育者除了专门的知识、技能外,还要有一定的知识素养。比如,要知道一点逻辑,讲点逻辑。在这种情况下,逻辑知识普及课对我国干部队伍素质的总体提高,还是起到一定的作用的。从这个意义上说,这门课也还是有功绩的。但是,现在的情况已经有了根本的改变。一个受教育者不再是计划经济下教育生产线出产的一个产品,不再是一个干部或储备干部,国家的干部体制现在也转变成了公务员体制,这不仅仅是名称的改变。在现在的情况下,一个大学生首先是一个将来要参与社会竞争的主体。我们的教育体制已发生了根本的变化,教育也地具有了人本精神,教育者要地从受教育者的立场出发考虑问题。面对这样的教育形势和被教育者,我们应该教什么?他们所面对的将是严酷的竞争和挑战,已经没有时间和条件再去接受那种养尊处优式的知识素养教育。所以我认为,如果说普通逻辑或逻辑导论这种逻辑知识普及课在过去时代条件下还有一些积极作用,那么现在这些作用早已淡出,所以这样的课已经不合时代要求,应该淘汰。取而代之的也是两极分化:彻底讲实用性,学批判性思维;真正学逻辑,学现代逻辑。这也是一种“与时俱进”吧。有一种观点认为,一个大学毕业生,受过高等教育的人,不学普通逻辑或逻辑导论,不知道什么是逻辑,不懂一点逻辑怎么行。我认为这种观点没有建立在将逻辑学、逻辑课以及它们的历史和社会时代背景等因素加以综合和仔细分析的基础上,没有充分的根据。如果有我们这里的分析,那就不仅是“怎么不行”,而且是势在必行。至于哲学系开什么课,不同的哲学系当然只能根据自己的情况量力而行。北大哲学系是按专门人才培养的方向来开课的,也有这个条件,所以当然应该开现代逻辑课,取消普通逻辑或逻辑导论课。我们实际上也是这么做的。目前只是对外系或校公共课还开逻辑导论,这是因为某种历史的惯性吧,迟早也是要取消的。在我系,现代逻辑课是一系列课程。首先是一阶逻辑。这是现代逻辑的入门课,也是哲学学习和研究的一个基础课。如果将来研究哲学,可以到此为止,也可以再学模态逻辑等。如果要学逻辑,则必须在有这门课的基础后再去学其他的逻辑课程。至于批判性思维,我认为是一门很好的课,也主张应该开这门课,甚至应该是全校的公共课。这是一门素质教育课,谁都可以选。但是要清楚,这门课与学哲学和学逻辑都没有什么特别的关系。
Ⅱ 如何处理好"算理"与"算法"的关系
算理是客观存在的规律,主要回答“为什么这样算”的问题;算法是人为规定的操作方法,主要解决“怎样计算”的问题。算理是计算的依据,是算法的基础,而算法则是依据算理提炼出来的计算方法和规则,它是算理的具体体现。
算理为计算提供了正确的思维方式,保证了计算的合理性和可行性;算法为计算提供了便捷的操作程序和方法,保证了计算的正确性和快速性。算理和算法是计算教学中相辅相成、缺一不可的两个方面。
应用算理,进行创造
算理是计算的思维本质,如果都这样思考着算理进行计算,不但思维强度太大,而且计算的速度很慢算。为了提高计算的速度,使计算更方便、快捷,就必须寻找到计算的普遍规律,抽象、概括出计算法则。计算法则是算理的外在表达形式,是避开了复杂思维过程的程式化的操作步骤,它使计算变得简便易行,它不但提高了计算的速度,还大大提高计算的正确率。
以上内容参考:网络-算理
Ⅲ 计数 计算 逻辑 算法的区别与联系
(1)计数:求出事物的个数或种类的过程,具体方法可以是数数,可以是计算,可以是测量,可以是核算,也可以是推理,但目的都是求出事物的个数或种类。
(2)计算:核算数目,根据已知量算出未知量。计算要根据各种计算法则、计算原理来进行。
(3)逻辑:思维的规律和规则,是对思维过程的抽象。我们往往采用判断、推理、计算、分析等多种方法由一个逻辑得出另一个逻辑,这就是我们常常说的逻辑推理。
(4)算法:解决问题的完整步骤和规范,由一个个清晰的指令组成。算法是一个比较新的概念,对于大多数人来说不太容易理解。历史上最初算法是指运算法则,现在的算法一般是指计算机可以实现的一个指令系统。算法有五个必备特征,有穷性、确切性、输入项、输出项、可行性。计算机要实现一个算法,基本运算和操作有如下四类:算术运算,加减乘除等运算;逻辑运算,或、且、非等运算;关系运算,大于、小于、等于、不等于等运算;数据传输,输入、输出、赋值等运算。
(1)在计数的时候,除了最简单的一个一个的数,为了更加方便准确的得出事物的个数或种类,经常要用到计算或者逻辑推理的方法;
(2)同样,在计算的时候,为了方便准确也可能用到计数或者逻辑推理;
(3)在逻辑推理的过程中,有时候也会用到计算和计数。
(4)无论是计数、计算还是进行逻辑推理,只要是解决一个问题的完整过程,具备“有穷性、确切性、输入项、输出项、可行性”五大特征,都可以称之为一个算法。而算法的各个步骤,往往是依据计数、计算、逻辑推理进行的。
综上所述,计数、计算、逻辑、算法是四个完全不同的概念,既相互区别又相互联系,可谓你中有我,我中有你。计数和计算都是一种过程,不同的是,计数是求出事物个数或种类的过程,计算是根据已知量求出未知量的过程。 逻辑和算法严格的讲都是名词,逻辑是思维的规律或规则,进行逻辑推理就是依据已知条件和已知规律推导出另一个规律。算法是解决问题的步骤。计数、计算、逻辑推理,都是由一个个步骤组成的,只要其过程具备“算法”的五大特征,就是算法。而一个算法的实现,往往会用到计数、计算、逻辑推理等多种形式。
(1)计数
计数(count) 亦称数数。算术的基本概念之一。指数事物个数的过程。计数时,通常是手指着每一个事物,一个一个地数,口里念着正整数列里的数1,2,3,4,5,…,和所指的事物进行一一对应,这种过程称为计数。上述逐个地计算事物的方法,称为逐一计数。若按几个一组的方法计数,则称为分组计数。
此外,计数亦可以被(主要是被儿童)使用来学习数字名称和数字系统的知识。 由现今的考古证据可以推测人类计数的历史至少有五万年,并由此发展导致出数学符号及计数系统的发展。古代文化主要使用计数在记录如负债和资本等经济数据(即会计)。
(2)计算
计算,汉语词语,有“核算数目,根据已知量算出未知量;运算”和“考虑;谋虑”两种含义。
释义:
(1) 核算数目,根据已知量算出未知量;运算。造句:计算光速。
(2) 考虑;谋虑。亦作“ 计筭 ”。造句:该怎么办,还得计算计算。
计算与人类:
由于现代人类各个课题学科繁多,涉及面广,而分类又细。而当今的每个学科都需要进行大量的计算。
天文学研究组织需要计算机来分析太空脉冲(pulse),星位移动;生物学家需要计算机来模拟蛋白质的折叠(protein folding)过程,发现基因组的奥秘;药物学家想要研制治愈癌症或各类细菌与病毒的药物,医学家正在研制防止衰老的新办法;数学家想计算最大的质数和圆周率的更精确值;经济学家要用计算机分析计算在几万种因素考虑下某个企业/城市/国家的发展方向从而宏观调控;工业界需要准确计算生产过程中的材料,能源,加工与时间配置的最佳方案。由此可见,人类未来的科学,时时刻刻离不开计算。而分布式计算(Distributed Computing),以其独特的优点——便宜、高效而越来越受到社会的关注。
(3)逻辑
逻辑指的是思维的规律和规则,是对思维过程的抽象。
狭义上逻辑既指思维的规律,也指研究思维规律的学科即逻辑学。
广义上逻辑泛指规律,包括思维规律和客观规律。逻辑包括形式逻辑与辩证逻辑,形式逻辑包括归纳逻辑与演绎逻辑,辩证逻辑包括矛盾逻辑与对称逻辑。对称逻辑是人的整体思维(包括抽象思维与具象思维)的逻辑。
(4)算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
Ⅳ 算法和数据结构的关系
记得网上曾经有一个帖子,大概的列出了学习ACM来说需要的知识背景。如果不是牛人,或者天生受虐倾向,普通人看到了都会晕倒,多达100多个科目(全部需要数学背景)。楼主觉得你能学的过来吗?
但是,所有的算法,乃至数学在实际运用中都是要根据不同的数据来选择不同的方法,所以一般学习过算法和数据结构的人都会越发的认识到,数据才是程序的中心,只有找到了一个组织数据的最佳方式,算法的运用才会事半功倍。比如我印象最深刻的是在大二时做的一道题目:判断一个输入的数是否符合科学计算法。如e*103,-30.90*103就不是。 这样一道题,如果用普通的数组线性存储,然后逐一判断,效率的算法的复杂度都是不合格的。 有限状态机则清晰明了的解决了这个问题。即把所有可能的状态和状态的转换画成一个矩阵,然后每读取一个输入的字符就在这些状态中跳转,直到最后一个字符为止,判断最终状态是有效还是无效状态。
总而言之:数据结构是问题的核心,是算法的基础。
建议楼主先磨好数据结构这把剑,对算法也不用着急,毕竟很多的数据结构的书中都有一些基础算法的介绍的。
Ⅳ 如何处理好"算理"与"算法"的关系
计算的算理是指计算的理论依据,通俗地讲就是计算的道理。算理一般由数学概念、定律、性质等构成,用来说明计算过程的合理性和科学性。计算的算法是计算的基本程序或方法,是算理指导下的一些人为规定,用来说明计算过程中的规则和逻辑顺序。
算理和算法既有联系,又有区别。算理是客观存在的规律,主要回答“为什么这样算”的问题;算法是人为规定的操作方法,主要解决“怎样计算”的问题。算理是计算的依据,是算法的基础,而算法则是依据算理提炼出来的计算方法和规则,它是算理的具体体现。算理为计算提供了正确的思维方式,保证了计算的合理性和可行性;算法为计算提供了便捷的操作程序和方法,保证了计算的正确性和快速性。算理和算法是计算教学中相辅相成、缺一不可的两个方面。
Ⅵ 数据结构和算法有什么关系数据结构就是算法吗
首先你要弄清楚数据结构是什么?数据结构呢其实就是一种存储数据之间的逻辑结构:比如我们学过的线性结构:顺序表啦,链表啦;层次结构:树啦。合适的数据结构可以带来更高的运行效率和存储效率,与相应解决实际问题算法的适应性也就越高,这也就是为什么一些算法指定了数据存储必须以某种特定的数据结才行。一般都是根据合适的数据结构来设计算法,而不是根据算法来设计数据结构。
算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。要想细致的了解,就要多看书,因为这东西毕竟发展了那么多年,一两句话是说不清楚的。想知道更多的数据结构与算法知识吗?可以去了解一下小码哥李明杰。
Ⅶ 算法的三种基本逻辑结构分别是______.
算法的三种基本逻辑结构分别是顺序结构,条件结构和循环结构;
故答案为:顺序结构,条件结构和循环结构.
Ⅷ 计算教学中如何正确处理算理和算法的关系
计算的算理是指计算的理论依据,通俗地讲就是计算的道理。算理一般由数学概念、定律、性质等构成,用来说明计算过程的合理性和科学性。计算的算法是计算的基本程序或方法,是算理指导下的一些人为规定,用来说明计算过程中的规则和逻辑顺序。
算理和算法既有联系,又有区别。算理是客观存在的规律,主要回答“为什么这样算”的问题;算法是人为规定的操作方法,主要解决“怎样计算”的问题。算理是计算的依据,是算法的基础,而算法则是依据算理提炼出来的计算方法和规则,它是算理的具体体现。算理为计算提供了正确的思维方式,保证了计算的合理性和可行性;算法为计算提供了便捷的操作程序和方法,保证了计算的正确性和快速性。算理和算法是计算教学中相辅相成、缺一不可的两个方面。
处理好算理与算法的关系对于突出计算教学核心,抓住计算教学关键具有重要的作用。当前,计算教学中“走极端”的现象实质上是没有正确处理好算理与算法之间关系的结果。一些教师受传统教学思想、教学方法的支配,计算教学只注重计算结果和计算速度,一味强化算法演练,忽视算理的推导,教学方式“以练代想”,学生“知其然,不知其所以然”,导致教学偏向“重算法、轻算理”的极端。与此相反,一些教师片面理解了新课程理念和新教材,他们把过多的时间用在形式化的情境创设、动手操作、自主探索、合作交流上,在理解算理上大做文章,过分强调为什么这样算,还可以怎样算,却缺少对算法的提炼与巩固,造成学生理解算理过繁,掌握算法过软,形成技能过难,教学走向“重算理、轻算法”的另一极端。
如何正确处理算理与算法的关系,防止“走极端”的现象,广大数学教师在教学实践中进行了有益的探索,取得了许多成功经验。比如,“计算教学要寻求算理与算法的平衡,使计算教学‘既重算理,又重算法”“把算理与算法有机融合,避免算理与算法的‘硬性对接’”“引导学生在理解算理的基础上自主地生成算法,在算法形成与巩固的过程中进一步明晰算理”“计算教学要让学生探究并领悟算理,及时抽象并掌握算法,力求形成技能并学会运用”等等,这些观点对于计算教学少走弯路、提高计算教学质量具有重要作用。
对此,笔者认为,处理计算教学中算理与算法的关系还应注意以下五点:一是算理与算法是计算教学中有机统一的整体,形式上可分,实质上不可分,重算法必须重算理,重算理也要重算法;二是计算教学的问题情境既为引出新知服务,体现“学以致用”,也为理解算理、提炼算法服务,教学要注意在“学用结合”的基础上,以理解算理,掌握算法,形成技能为主;三是算理教学需借助直观,引导学生经历自主探索、充分感悟的过程,但要把握好算法提炼的时机和教学的“度”,为算法形成与巩固提供必要的练习保证;四是算法形成不能依赖形式上的模仿,而要依靠算理的透彻理解,只有在真正理解算理的基础上掌握算法、形成计算技能,才能算是找到了算理与算法的平衡点;五是要防止算理与算法之间出现断痕或硬性对接,要充分利用例题或“试一试”中的“可以怎样算?”“在小组里说一说,计算时要注意什么?”等问题,指导学生提炼算法,为算理与算法的有效衔接服务。
Ⅸ 算法的三种基本逻辑结构是
1.顺序结构
2.选择结构,又称选取结构或分支结构
3.循环结构,又称重复结构--有两类:当型循环结构;直到型循环结构