《天才基本法》中的P=NP?问题对应算法逻辑

《天才基本法》中的P=NP?问题对应算法逻辑


看了电视剧《天才基本法》之后,一直对这个P=NP问题不理解,于是查阅了很多资料,看了很多视频,基本上大同小异,不过还是有些讲的是比较清楚的,所以想用CSDN记录一下学习过程,同时方便感兴趣的人一起理解,当然仅是个人理解。

什么是P

其实不应该说是P,而是P问题,P类型的问题,从语文的角度来理解数学概念绝对是非常好的办法,所以P的本质是什么,是一种问题。
简单举个例子"1+1=?",这是一个问题,怎么解决这个问题,使用加法,加法就是解决这个问题的算法,我们通过加法就计算出了它的答案。这个问题的答案就是2。所以首先1+1=?它是一个问题,其次它的答案是2。
总而言之,P代表的是问题,而万万没想到是这会涉及到计算机的知识——算法!
对于人而言,每个人计算能力不同,同一个问题,有的人算的快,有的人算的慢。但是计算机就不一样了,随着计算机的发展,计算一个问题时,运行同一个算法,用到的时间是一样的;而在计算不同的问题时,运行不同的算法,用到的时间是不一样的。那么问题越难,算法越复杂,计算机计算它所用到的时间就会越长,因此通过计算机计算的时间的长短来判断一个问题的难度,成为了一种标准——时间复杂度。
对程序员来说,冒泡排序法没有快速排序法快(两种不同的算法),因为冒泡排序法的时间复杂度O(n²)大于快速排序法的时间复杂度O(nlogn)。所以计算一个问题,算法不同时间就会不同,有的算法甚至需要计算机几百年才能解出来,如果一个复杂的问题能用相对简单的算法快速计算出来,那将会对社会发展起到不可估量的作用…跑远了。
由于时间复杂度不同,所以对于有些问题,计算机可能需要特别长的时间去计算出结果。
时间复杂度又分为这几个等级。
在这里插入图片描述
在这里插入图片描述

O表示的就是时间复杂度,而括号里面的就是多项式,但是如图上前五个小的表示多项式,而后三个大的表示非多项式。
所以清楚了这些我们就清楚了P,
P就是一些可以通过多项式时间复杂度的算法能够解决的,并且反过来,通过答案去能够验证这个答案对于这个问题是否正确的这类问题。
有点绕,
简单来说,
就是能解,能验算的问题。并且解的时间比较短。属于简单问题。

什么是NP

跟P一样,也是问题。
简单来说,
就是能验算的问题。至于解的时间长不长那就不知道了。
所以P包含于NP,是不是非常容易理解。
NP就是一部分P(解法是多项式)一部分是(非多项式)的这类问题。(当然不涉及其他概念,可能不太严谨,便于理解)
就是包含了简单问题与复杂问题的问题集合
并且多项式解法所用的时间比较短,而非多项式解法所用的时间非常长。

什么是P=NP?

如果有一种方法能够把NP的这部分非多项式的这类问题,简化成多项式的这类问题,那么这类问题就能够快速的解决,从概念上来讲NP就全部都是P了。那么就能通过这个方法证明P=NP?。
简单来说,
就是困难问题能否转换成简单问题。
当然电视剧最后也提出了图同构法,那么图同构法究竟能不能将全部的NP问题转化成P问题,我不知道,但他对于证明P=NP?起到了非常大的作用,至于图同构法,当然也涉及到计算机的知识,算法的知识,所以计算机科学还是很有魅力的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值