一起聊聊什麼是P問題 NP問題 NPC問題

2021-07-25 13:42:51 字數 804 閱讀 2441

p問題:如果乙個問題可以找到乙個能在多項式的時間裡解決它的演算法,那麼這個問題就屬於p問題。通常noi和noip不屬於p類問題,我們常見到的一些資訊奧賽的題目都是p問題。

np問題:可以在多項式的時間裡猜出乙個解的問題。np問題不是非p類問題。np問題是指可以在多項式的時間裡驗證乙個解的問題。之所以要定義np問題,是因為通常只有np問題才可能找到多項式的演算法。

所有的p類問題都是np問題。也就是說,能多項式地解決乙個問題,必然能多項式地驗證乙個問題的解。

注:資訊學中的號稱最困難的問題——「np問題」,實際上是在**np問題與p類問題的關係。

「np」的全稱為「nondeterministic polynomial」,而不是「non-polynomial」。np 類問題指的是,能在多項式時間內檢驗乙個解是否正確的問題。比如我的機器上存有乙個密碼檔案,於是就能在多項式時間內驗證另乙個字串檔案是否等於這個密碼,所以「破譯密碼」是乙個 np 類問題。np 類問題也等價為能在多項式時間內猜出乙個解的問題。這裡的「猜」指的是如果有解,那每次都能在很多種可能的選擇中運氣極佳地選擇正確的一步。

不妨舉個例子:給出 n 個城市和兩兩之間的距離,求找到乙個行走方案,使得到達每個城市一次的總路程最短。我們可以這樣來「猜測」它的解:先求乙個總路程不超過 100 的方案,假設我們可以依靠極好的運氣「猜出」乙個行走路線,使得總長度確實不超過 100,那麼我們只需要每次猜一條路一共猜 n 次。接下來我們再找總長度不超過 50 的方案,找不到就將閾值提高到75…… 假設最後找到了總長度為 90 的方案,而找不到總長度小於 90 的方案。我們最終便在多項式

什麼是P問題,什麼是NP問題,什麼是NPC問題

參考 講的真好!非多項式級別 運算慢,巨大 o n o 多項式級的複雜度 運算快,比較小 o 1 o n o 該問題能夠找到乙個解決演算法,時間複雜度是o 1 o n o 多項式時間 的級別 找乙個解很困難,但驗證乙個解很容易。我們可能沒有乙個已知的快速的解決問題的方法,但是如果給我們乙個候選的答案...

什麼是P問題,NP問題和NPC問題?

先簡單的幾句話說一下時間複雜度。時間複雜度並不是計算機解決乙個問題需要花多長時間,而是當問題規模擴大後,而是當問題規模擴大後,程式需要的時間增長速度有多快。不管程式資料有多大,程式處理花的時間總是那麼多的,那我們說這個這個程式很好,具有o 1 的複雜度,也就是常數級複雜度 資料規模變得多大,花的時間...

什麼是NP問題?

什麼是np問題 概念 在計算機學科中,存在多項式時間的演算法的一類問題,稱之為p類問題 而像梵塔問題 推銷員旅行問題 命題表示式 可滿足問題這類,至今沒有找到多項式時間演算法解的一類問題,稱之為np類問題。拿推銷員旅行問題為例,假設推銷員亨利有向6個城市推銷公司產品的任務,並規定了乙個旅行預算。他手...