NPC问题

  研一是密码学专业开的一门课《计算复杂性理论》,当时对立面的NP,NPC这些概念都挺模糊,后来也是不了了之。现在看一些密码学论文的时候经常遇到这一概念,只能硬着头皮搞清楚。下面把自己的理解写下来,一来加深记忆和理解,而来为以后做个储备。

  问题分为两种,一种是可以通过明确的公式直接得到答案,比如:1+1=?

另一种无法直接通过公式求解,比如:给一个数,求出它的因子。

  对于第二种问题我们求解的途径只能通过猜测验证,例如,我们一个数N的因子的时候,一般方法是猜测因子为a,取a=2,然后验证N是否能被a整除,是,则2是因子,否,则a加1继续验证,直到a取到N-1,找出所有的因子。

  第二种问题就称为非确定性问题。在非确定性问题中,验证一个猜测的步骤在多项式时间内可完成,则称为多项式非确定性问题,即NP问题。在NP问题中,验证每一个猜测所用的时间是指数时间。在NP问题中,存在特定的NP问题,其他所有的NP问题都能在多项式时间内转化为该问题,这个NP问题称为NP完全问题,即NPC。所以如果存在一种算法,能在多项式时间内求出NPC问题的正确答案,那么就能在多项式时间内求出所有的NP问题。目前这种算法还没出现。这就是NP是否等于P的问题(能在多项式时间求解的问题称为P问题)。

时间: 2024-10-29 19:12:28

NPC问题的相关文章

T端PVP头衔获得NPC脚本

次代码是一个T端的脚本.通过击杀的角色数量等级来获得不同的头衔. 下面的Ranks就是击杀的数量.根据你的击杀数量,你可以到NPC那里去领取对应的头衔等级 #include "ScriptPCH.h" enum Ranks { RANK_1 = 50, RANK_2 = 100, RANK_3 = 500, RANK_4 = 1000, RANK_5 = 2000, RANK_6 = 4000, RANK_7 = 5000, RANK_8 = 6000, RANK_9 = 8000,

算法导论之P、NP、NPC问题

P.NP.NPC 概念 > P问题:能够在多项式时间内解决的决策问题. -举例: 图搜索问题.最短路径问题.最小生成树问题······ > NP问题:不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题. -验证:给定一个问题的实例.证书(类似于证据),需要验证这个证书是这个问题的正确答案. - 举例:汉密尔顿路径,实例为G=(V,E),证书为顶点序列 {v0,v1,v2,v3,-.,vk},我们的目的是要验证这个证书就是这个问题的答案,验证方法为:先遍历一遍这个

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

本文转自:http://www.matrix67.com/blog/archives/105 这或许是众多OIer最大的误区之一. 你会经常看到网上出现“这怎么做,这不是NP问题吗”.“这个只有搜了,这已经被证明是NP问题了”之类的话.你要知道,大多数人此时所说的NP问题其实都是指的NPC问题.他们没有搞清楚NP问题和NPC问题的概念.NP问题并不是那种“只有搜才行”的问题,NPC问题才是.好,行了,基本上这个误解已经被澄清了.下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你

关于P、NP、NPC和NP-Hard问题

1.P问题 P中包含的是能在多项式时间内解决的问题,此类问题的时间复杂度不超过O(),期中n为问题输入规模,k为常数. 2.NP问题 NP中包含的是能在多项式时间内验证某个解是否正确的问题. 比如:(1)所有的P问题都是NP问题,因为我们总能在多项式时间内验证给定的某个解是否正确. (2)对于某些不属于P问题的问题,如3-CNF可满足性问题,给出一组变量的赋值序列,我们很容易在多项式时间内验证其布尔表达式的值是否为真. 3.NPC问题 一个问题是 NPC问题必须满足: (1)这个问题是NP问题:

C语言写的NPC管理系统

; }NPC; // //  main.c //  GitDeom // //  Created by 黄桥平 on 14/11/8. //  Copyright (c) 2014年 黄桥平. All rights reserved. // #include <stdio.h> #include<stdlib.h> typedef struct _NPC { int hp; int id; int act; int px,py; char name[20]; }NPC; typed

T端大灾变版本传送大师(NPC 脚本)

#include "ScriptPCH.h"  class npc_teleport : public CreatureScript{    public:        npc_teleport() : CreatureScript("npc_teleport") { }                 bool OnGossipHello(Player *player, Creature *_creature)                {         

T端音乐盒子-NPC脚本

为什么叫音乐盒子呢??这个说简单点,其实就是制作一个NPC,然后让玩家可以在游戏中有选则性的播放游戏音乐!有趣吧? 其实主要用到了PlayDirectSound函数和SendPlaySound函数. 这两个函数都是用来播放声音的..声音当然是在每个玩家的客户端存储着呢! 这个就是Trinity-Core 端3.3.5怀旧魔兽世界私服中能用到的播放音乐的NPC脚本,大家可以试试 // By Asbert75 (Help from Jameyboor) // // Jukebox // #inclu

T端无限制附魔NPC脚本

1.首先,这个是脚本代码.你需要知道Trinity-Core如何增加脚本 2.这个是一套NPC的脚本. 3.脚本功能就是通过NPC来给自己身上的物品附魔(附魔都知道吧?) 5.你需要在creature_template里面加上对应的NPC,然后使用npc_enchantment脚本名称,.然后进入游戏用.npc add 来增加该功能NPC 下面是代码 #include "ScriptPCH.h" class npc_enchantment : public CreatureScript

计科1111-1114班第一次实验作业(NPC问题——回溯算法、聚类分析)

实验课安排 地点: 科技楼423 时间:  计科3-4班---15周周一上午.周二下午 计科1-2班---15周周一下午.周二晚上(晚上时间从18:30-21:10) 请各班学委在实验课前飞信通知大家. 实验内容 (1)八皇后及N皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即随意两个皇后都不能处于同一行.同一列或同一斜线上.问有多少种摆法. 高斯觉得有76种方案.1