美文网首页
NPC问题浅析

NPC问题浅析

作者: 耀鹏 | 来源:发表于2018-04-12 20:11 被阅读0次

1. npc问题

通俗的理解方式:无法在多项式时间内求解,但是可以在多项式时间内验证结果

e.g. :

验证一个hash值是否通过A的私钥生成复杂度低,但是要猜出什么内容,通过A的私钥生成的hash值会是B,则是一个多项式时间无法求解的问题

1.1 多项式时间

多项式时间

算法的复杂度,我们通常会说O(1) O(n) O(n^2) => 从括号里看出,复杂度可以用一个多项式来表达的算法,即为多项式时间算法

多项式:∑n^k 可表达的复杂度,比如 e^n是指数复杂度,就超越了多项式复杂度

比如:

遍历数组:算法复杂度为O(n)

二分查找:  算法复杂度O(log(n))

冒泡排序:O(n^2)

非多项式时间

复杂度无法通过多项式表达,一个最简单的例子,打印n个元素的所有组合,复杂度为O(n!), 阶乘的复杂度,超越了多项式可表达的范围

1.2 P 问题

如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。(证明:得出完备解决)

我们大多数实现的程序和算法,都可以理解为P问题,参见【多项式时间章节里面的例子】

1.3 NP问题

如果一个问题的解,能在多项式时间内得到验证,那么这个问题就是NP问题

1.4 NP-Hard问题

所有的NP问题都可以约化到它

约化的概念:解决问题B, 就意味着解决问题A. 例如:乘法可以约化到加法

理解:无法在多项式时间内求解的问题 (证明一个问题时NP-hard问题,通常是证明它可以解决一个NPC问题)

例子参见文末

1.5 NPC问题 NP完备问题

同时满足下面两个条件的问题就是NPC问题。

1. 它得是一个NP问题;2. 所有的NP问题都可以约化到它

理解:无法在多项式时间内求解,但是可以在多项式时间内验证结果

例如这样一个问题:

已知md5值,求原内容,这个问题只能用穷举的方法,是一个无法在多项式时间内求解的问题

但是,我们拿到一个md5值和一个内容,却可以再很有限的计算代价下,验证这个md5是否是这个内容hash得到的

相关文章

  • NPC问题浅析

    1. npc问题 通俗的理解方式:无法在多项式时间内求解,但是可以在多项式时间内验证结果 e.g. : 验证一个h...

  • NPC问题

    NPC问题_百度百科

  • 算法设计与分析——12.算法复杂度

    了解计算问题的基本分类理解P 问题,NP 问题,NPC 问题的定义了解几个典型的NPC 问题,理解为什么证明P是否...

  • P、NP、NPC问题

    P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题 NP问题:NP问题不是非...

  • P,NP,NPC问题

    参考链接:什么是P问题、NP问题和NPC问题 时间复杂度   此处我们分为两类,多项式级的复杂度和非多项式级的复杂...

  • 什么是P问题、NP问题和NPC问题

    http://www.matrix67.com/blog/archives/105 什么是P问题、NP问题和NPC...

  • 侍魂胧月传说新年慰问活动全答案攻略 叉叉助手一键帮你玩

    侍魂胧月传说新年慰问活动是最近上线的活动。玩家需要每日慰问五位NPC并回答NPC的问题就能获得丰厚的奖励。下面叉叉...

  • [PHP Mud]死还是不死是个问题

    想要和NPC之间产生爱恨情仇,死还是不死,是一个很大的问题。 传统的MUD游戏中,玩家或者NPC的死亡,都会导致两...

  • P类问题与NP问题

    这类问题在什么是P问题、NP问题和NPC问题中已经讲得非常细致了,大家可以前去阅读。

  • NPC

    (没看懂是啥意思,继续学习)NP - complete约归:算法X - 可以解决问题B - -也可以解决问题A则问...

网友评论

      本文标题:NPC问题浅析

      本文链接:https://www.haomeiwen.com/subject/dkmfkftx.html