你真的理解什么是P,什么是NP字符串是什么样的吗?
编者按:说起复杂度,相信不少人会想到Jeff Dean面试Google时的一个笑话,面试官问:如果P=NP成立,你能推导出哪些结论?年轻的Dean面不改:P=0N=1。虽然这个经典段子令人回味无穷,但你真的理解什么是P,什么是NP吗?
对于计算机来说,做什么事是容易的,做什么事是几乎不可能完成的,这些问题构成了计算复杂度的核心。
如果计算机科学家希望能用一个叫做“复杂度”的东西对问题进行分类,那么一个问题有多困难?这会是他们需要面对的基本任务。所谓“复杂度”,它可以被看作是包含所有计算问题的一系列组,组间划分依据是解决具体问题所耗费的资源是否在某个固定数量以下,这里的资源可以是时间,也可以是内存。
以一个玩具问题为例:123,456,789,001是不是质数?对于这个问题,计算机科学家可以用现有算法快速得到答案——123,456,789,001不是质数。无论这个数字是否会变得越来越大,算法计算所需资源会一直在可控范围内,不会突破天际。
那么,新的问题产生了:它的质因子有哪些,除了1和本身,它还能被哪些数整除?通常情况下,我们认为它和上个问题拥有不同的“复杂度”。验证一个数是不是质数很简单,但出它的所有质因子就很困难。目前,算法还不能在短时间内解决这个问题,除非我们已经有了成熟的量子计算机。
“复杂度”本身存在大量不同的类别,但在大多数情况下,我们还无法证明这一类“复杂度”和那一类“复杂度”有哪些显著不同。这些差异可能是微妙的,也可能是明显的。因此对于大多数人来说,明确分类各种复杂度也是一个艰巨的挑战。
什么是P
代表:多项式时间复杂性类(Polynomial time
简介:所有P问题都能被经典计算机(非量子计算机)轻松解决。
详细说明:如果一个问题是P问题,那么它必须满足在多项式时间nc内验证一个算法问题的实例是否有解 ,其中n是输入长度,c是个常数。

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