導航:首頁 > 源碼編譯 > Pc28穩定演算法

Pc28穩定演算法

發布時間:2022-05-06 08:52:00

㈠ 高中計算機奧林匹克競賽考什麼

一、考試內容主要有:

NOI 競賽的題目以考查選手對演算法編程能力的掌握為主。題目類型有以下三種:

1、傳統型:

傳統型題目要求選手提交答案程序的源文件。該程序從一個正文文件中讀入數據,並向指定的輸出文件中寫入計算結果。非互動式程序題的題麵包括下列內容:

(1)求解問題的描述;

(2)輸入文件名和輸出文件名(可以是標准輸入/輸出);

(3)輸入數據格式、輸出數據格式、以及輸入數據范圍;

(4)對程序使用計算資源的限制,以及其它可能的限制。

2、交互型:

交互型題目要求選手提交答案程序的源文件。該程序通過調用所提供的庫函數實現數據的輸入和輸出。互動式程序題的題麵包括下列內容:

(1)求解問題的描述;

(2)庫函數的功能、函數原型、以及獲取和鏈接方式;

(3)輸入數據格式、輸出數據格式、以及輸入數據范圍;

(4)對程序使用計算資源的限制,以及其它可能的限制。

3、提交答案型:

提交答案型題目不要求選手提交程序的源文件。選手需要按題目要求,根據給定的輸入數據文件生成一組輸出數據文件。該組數據文件既可以是由選手的程序輸出的,也可以是由選手手工構造的。當選手使用自行設計的程序生成題目答案時,其所使用的程序不應提交。答案提交題的題麵包括下列內容:

(1)求解問題的描述;

(2)輸入數據格式、輸出數據格式;

(3)輸入數據文件的獲取方法。

二、報名地:

所有省市自治區都可以報名參加。

三、編譯系統:

gcc ≥3.2.2, g++ ≥3.2.2, Free Pascal ≥2.0.1 ,主要用 C++ 和 Pascal 。

四、靠前復習應以考試內容為側重,到達熟練掌握的程度,很有可能拿到好成績。

(1)Pc28穩定演算法擴展閱讀:

1、競賽前的練習和標准化筆試題:

選手在正式競賽前應有不少於2個小時的練習時間,以熟悉競賽場地、設備和軟體環境、以及答案提交方式。競賽前的練習應安排在第一場競賽的前一天。在賽前練習結束後,應安排不少於30分鍾的時間進行標准化筆試題的測試。

標准化筆試題包含單選題、多選題和填空題,題目涉及的內容包括計算機和編程的基本知識、NOI競賽所使用的操作系統、編程工具等的使用方法,以及基本競賽規則。標准化筆試題的成績計入選手競賽的總成績。

2、競賽時間:

NOI 的競賽分為兩場,每場競賽的時間為5小時。兩場競賽之間應間隔一天。

㈡ 新加坡28演算法急求答案

遇到不會的題就上網找答案照抄,根本不想動腦筋,會讓學生養成,在網上是問不到答案的哈
不思考的習慣,改正吧,多思考 做題不怕做錯,就怕不思考

㈢ 請介紹下SLI

SLI的全稱是Scalable Link Interface,它是通過一種特殊的介面連接方式,在一塊支持雙PCI Express X 16的主板上,同時使用兩塊同型號的PCIE顯卡。 以增強nVIDIA在工作站產品中的競爭力,畢竟ATi憑借FireGL系列在該領域不斷蠶食nVIDIA的市場。在未來的產品線中,SLI將成為新的至高點。那麼,SLI是一項什麼樣的技術?它與過去的多GPU技術有何差異?SLI能否在市場上獲得佳績?要回答這些問題,我們有必要對SLI進行全面的分析介紹,同時也將回顧多GPU技術的發展歷史。

多顯卡並行機制的歷史最早可以追溯到1997年,當時的顯卡市場可以說是3Dfx一家獨大,該公司在1996年下半年所推出的Voodoo加速卡成為發燒友瘋狂追捧的一代經典產品。1998年初,3Dfx推出了它們的第二代3D圖形卡產品—Voodoo 2,當時Voodoo 2擁有90Mps的像素填充率,具備Z-Buffering、Anti-Aliasing、單周期雙紋理等當時最先進的3D特性,大幅超越其上一代產品,其他對手更是被遠遠甩在了後頭。不過,最令發燒友瘋狂的是Voodoo 2所具有的「SLI交錯互連技術」,這項技術可以讓兩塊Voodoo 2顯卡連接起來並行運作,獲得近乎翻倍的3D效能。如此一來,其他競爭者更是望塵莫及。
我們知道,CPU的並行運作是通過指令並行執行獲得的,但對顯卡來說情況有所區別。顯卡最終生成的是所渲染的3D畫面,這項工作包含大量的指令,而如何將工作均等分配就成為問題,3Dfx選擇了按畫面幀線進行渲染的方式。SLI技術將一幅渲染的畫面分為一條條掃描幀線(Scanline),若Voodoo 2採用雙顯卡運行模式,那麼就由一個顯卡負責渲染畫面的奇數幀線部分,另一塊顯卡渲染偶數幀線,然後將同時渲染完畢的幀線進行合並後寫入到幀緩沖中,接下來顯示器就可以顯示出一個完整的渲染畫面。不難看出,SLI技術讓渲染工作被平均分擔,每塊顯卡只需要完成1/2的工作量。理論上說,渲染效率自然也可以提高1倍,這就是雙顯卡並行大幅提升效能的奧秘所在。SLI在技術上極為成功,而發燒友們對Voodoo 2也抱有莫大的熱情。在當時,你如果希望在1024×768的「高解析度」下流暢地玩3D游戲,唯一的解決方案就是使用兩塊Voodoo 2顯卡並讓它們工作在SLI模式下。

在Voodoo 2之後的Voodoo 3,3Dfx沒有效仿這個SLI雙顯卡技術,但在Voodoo 4/5/6時代,3Dfx重新恢復了SLI,但應用的形式已有所區別。Voodoo 2倡導雙顯卡並行運作,兩塊顯卡插在PCI槽里再用專用的線纜連接起來,但這並非必需的,單個Voodoo 2顯卡也可以獨自工作,只是速度較慢而已。2000年春,3Dfx推出VSA100圖形晶元,當時nVIDIA已經壓過3Dfx成為領先者,為了奪回自己的領導地位,3Dfx讓SLI技術重裝上陣。VSA100可支持單晶元、雙晶元和四晶元並行運作,單晶元版本就是Voodoo 4,雙晶元顯卡為Voodoo 5 5500,而四晶元顯卡則是著名的Voodoo 5 6000。此時,SLI技術演變為單顯卡多圖形晶元的形式,不需佔用兩個插槽,但內部的工作機制並沒有發生多大的變化,依然是通過劃分渲染幀的方式各自執行,然後在幀緩沖中統一合成。出於眾所周知的原因,這些顯卡都沒獲得廣泛認可,3Dfx也從衰落走向死亡。2001年初,nVIDIA收購了3Dfx,SLI技術也隨之成為了歷史,盡管nVIDIA掌握了3Dfx的所有技術,但它並沒有將之發揚光大,而是繼續按照自己的道路走下去,收購3Dfx的目的也許只是消滅一個競爭對手而已。
在這之後,我們看到了nVIDIA順利一統江湖,接著就是ATi逐漸發起挑戰,GeForce和Radeon是人們最常掛在嘴邊的名詞,至於3Dfx和它的SLI已經逐漸被人淡忘了,即便偶爾有人談起,也多是說那是一個策略糟糕的企業和一項昂貴不切實際的技術。在顯卡的歷史中,除了Voodoo 2之外沒有哪一項多顯卡、多晶元技術曾獲得成功,雖然ATi嘗試過,新生的XGI也勇闖該領域,然而事實證明這個方案並不受用戶們的歡迎。不過,誰也沒有想到nVIDIA重新拾起3Dfx的SLI技術。2004年6月29日,nVIDIA大張旗鼓發布了「SLI Multi-GPU技術」,並將該技術引入最新發布的GeForce 6800和Quadro FX4000系列顯卡上。沿用「SLI」這個名稱或多或少讓人聯想到3Dfx,nVIDIA想要的也許正是這個效果,它更希望被用戶認為是3Dfx技術的一脈相承。但如果我們深入分析,便會發現它與3Dfx的SLI技術沒有多少相同的地方,基本上就是一套nVIDIA新搞出來的多顯卡方案。
SLi技術是實現了兩款顯卡同時出現在一塊板子,構成一套SLI雙顯卡並行系統,這一技術的應用更大程度的滿足了用戶對高品質畫質的需求。這一技術還是今年6月在台北電腦展上首次出現的,這次電腦展上同時還展現了NV45核心顯卡,隨著NV45的曝光,這一技術也隨著曝光,這一技術自出現以來就陪受世人的關注。

這一介面出現在顯卡的端部,卡上的介面類似於PCI Express ×1,通過這一介面實現兩塊NV45顯卡的連接,實現SLi的並行運作。同時NV官方表示,選擇PCB卡連接可充分保證信號通訊的質量與速度,顯卡間的數據傳輸採用數字形式進行,這樣可有效防止因信號干擾而導致畫面不同步的弊端。Voodoo 2所採用的技術是模擬傳輸方式,數字信號先被轉換為模擬信號後才進行合成,因為干擾的影響,在某些時候會出現數據不匹配的問題,導致合成後的畫面往往難以同步或出現其他問題,這也是Voodoo 2 SLi技術的主要缺陷。而改用數字信號傳輸,顯然就不存在這個問題,顯卡處理完的幀數據被集合起來合成,然後才轉為模擬信號輸出,從而確保畫面的完整性。
nVIDIA將SLi控制功能直接的集成到在顯卡的GPU晶元內部,從上圖的晶元的邏輯圖中可以很容易的看到,在NV45的左側左側偏下的位置有一個很小的區域專門負責SLI運作,該區域所掌管的職能包括兩塊顯卡的連接、通訊,渲染任務的指派以及畫面的合成等等。由於指令的傳輸工作相對簡單,在晶元的FCBGA封裝中也只有極少幾根針腳用於SLI模式。但由於別的GPU並沒有集成這一控制邏輯,所以別的顯卡並不支持這一技術,但由於特殊的原理的所以SLi技術並不支持AGP匯流排,SLi技術只可運行在PCI-E模式下,對主板提出了新的要求。同時nVIDIA官方還透露,SLi最多可以支持高達8塊的GPU並行運行,但是對於目前的市場來看,8塊GPU的並行運作並沒有什麼實際的意義。
對於SLi技術,兩款顯卡並不是對等的,在運行工用中,一塊顯卡做為主卡,另一款做為副卡,其中副卡只是接收來自主卡的任務進行相關處理,然後將結果傳關回主卡,同時不要聲名的是在傳送數據的兩個途徑,兩塊顯卡都是通過PCI-E介面與主板相連接,而這兩塊顯卡之間還要有一個通訊的PCB卡(即SLi橋接卡),其中,連接兩塊顯卡的PCB卡用於任務指派指令以及後期處理結果的傳送,這部分的數據量不會很大,所以PCB卡所使用的介面和自身結構都較為簡單。但是,顯卡在渲染過程中必須調用大量的數據,這部分數據只能通過PCI-E介面從系統中獲取。換言之,在SLI系統中有兩部分不同的數據流向,一部分為主卡將任務指令通過PCB連接卡傳送給副卡,副卡將渲染完畢的結果數據返回給主卡合成,另一部分為處理過程中從PCI-E介面得到的原始數據。

SLi技術採用幀線方式劃分任務,想把一幅畫完全的渲染出來,一副畫面將被渲被分成奇數渲染幀和偶數渲染幀兩個部分,然後交給兩塊顯卡分別渲染,完畢之後再統一合成。雖然nVIDIA繼續沿用了「Scalable Link Interface」的名號,但在工作的方式上已有了本質性的改變。在nVIDIA的SLi系統中,一幅渲染的畫面被劃分為上下兩個部分,主顯卡完成上部分畫面,副顯卡則完成下半部分的畫面,然後副顯卡將渲染完畢的畫面傳輸給主顯卡,主顯卡再將它與自己渲染的上半部分畫面合成為一幅完整的畫面。這樣,一個完整的SLi並行渲染任務就完成了。同理相推,如果有四塊顯卡並行運作,那麼畫面會被分成四個部分分別渲染,8個GPU並行也是如此
技術難題

奇偶幀數分配也有一些弊端,首先,主顯卡或是主GPU必須承擔額外的控制、任務分配、畫面合成及輸出等工作,用於渲染的運算資源較少,但它必須完成與副卡一樣多的任務,顯然的副卡的工作效率要比主卡快,副卡率先的將自己的任務處理完,把結果數據回傳後便處於等待狀態,直到主卡將它的任務處理完畢之後才可以繼續進行任務入出指派,同時,同一幅畫不同區域的復雜並不相同,所需的運算也不一樣,如果使用Voodoo 2的幀線劃分方式那也沒什麼,但是nVIDIA的SLi採用劃分上下畫面的方式,如果在一些常見的游戲中畫面上半部分幾乎是靜態的,而下半部分就非常復雜,需要處理的數據量很大,如果單純將畫面作均等的劃分也不科學。

為此nVIDIA另外開發了一套動態負載平衡技術來解決這一情況,畫面的上下劃分並不是按照固定的一半一半方式,而是根據畫面的復雜情況進行劃分,這樣的分配並不是為了保證工作量在兩塊卡間的絕對平均分配,而是要將兩塊顯卡完成渲染任務的時間保持一致,以此達到效能的最優化。同時考慮到主顯卡需要承擔額外的控制任務,同於實際渲染運算的資源較少,動態負載平衡演算法就可以根據這一前提,將任務量適合多給副卡,讓其分擔來減少主卡的負擔,這樣動態負載平衡演算法並不是集成在GPU晶元內部,而是在驅動程序中整合,nVIDIA可以方便對其進行修改,以達到更好的性能。

但是,動態平衡技術也不是萬能的,SLi無法支持在不同的顯卡間構建並行系統,用戶在選擇時可以選擇PCI-E介面的GF6800標、6800U及是Quadro FX4000顯卡,對於不同版本的GF6800顯卡或是同時使用不是同一版本的顯卡像6800和Quadro FX4000顯卡,將不能被實用。同時兩塊卡在協同工作時上下兩部分畫面的垂直同步也是一個問題,如果打開該功能勢必會對游戲的性能產生影響。但是您還是不用太擔心的,NV已採用了緩存技術來針對於這一技術進行進一步的解決。用戶大可不必擔心SLi系統會受顯示器刷新率的影響。而建立SLI工作模式後的兩塊顯卡也都支持超頻,但用戶一定要記住,兩塊顯卡的頻率必須要保持一致。

SLi的門檻:

毫無疑問,SLI可以構建出一套無敵的強悍圖形系統,但前提是你得找到相應主板的支持。SLI系統要求使用兩塊PCI Express顯卡,也就要求主板必須提供兩個PCI Express×16插槽,這與當年Voodoo 2 SLI要佔用兩條PCI槽是一樣的。不同之處在於,現有的PC主板最多也只提供一條PCI Express×16圖形插槽,顯然無法構建基於GeForce 6800或Quadro FX4000的SLI系統,用戶必須尋求另外的渠道。 新趨向就是,如果你想獲得SLI系統,AMD64的Nforce4平台將會成為最好的選擇,這在無形之中將提升AMD產品在工作站市場的影響力。

解決了主板的支持問題,應對雙顯卡的高功耗便提上日程。GeForce 6800集成了多達2億2000萬枚晶體管,堪稱是當前規模最大的集成電路晶元。盡管nVIDIA藉助冗餘電路技術明顯提高了產品的良品率,但並沒有解決功耗過高的問題—GeForce 6800的最高功耗超過100W,甚至比Prescott還要驚人,即便在正常模式下,其功耗也高達70W到90W之多,nVIDIA甚至建議PC用戶使用460W的高功率電源。而現在的SLI系統面臨的問題顯然更加糟糕,兩塊GeForce 6800/Quadro FX4000顯卡至少要耗費將近200瓦的電能,加上雙CPU和其他部件,至少要為整套系統准備500到600瓦的大功率電源才會夠用,普通PC用戶註定是無福消受。

成本過高也是SLI系統要面對的一個問題。一塊GeForce 6800顯卡最便宜也要3000多元人民幣,Ultra版顯卡可達到5000元,而一塊Quadro FX4000專業顯卡超過萬元,雙顯卡的高昂代價毋庸置疑。另外,SLI系統只能同工作站主板和高階CPU搭配,這又是非常龐大的開支。粗略估計,組建一套SLI系統最少都要超過1萬元人民幣,最多可超過5萬元,任何人都會對此掂量再三。

獲得可支持的主板,裝載了高功率電源,同時願意付出高昂的代價,那麼你便可以感受到SLI系統所擁有的超強圖形性能了。根據nVIDIA所提供的數據,在3DMark 2003(1600×1200解析度,32位色開啟4×AA、8×AF模式)以及最新的 Unreal 3 Engine(1024×768解析度,32位色) 的測試中,SLI雙顯卡的成績可達到單顯卡運作的1.87倍之多,3DMark 2003的得分也輕松超過20000分大關,表現極為強悍。nVIDIA透露,SLI系統尚有一定的提升空間,比如向游戲開發者公布SLI演算法,使得開發出的游戲可為SLI系統作優化。當然,不管怎麼優化,SLI系統的最高性能都不可能達到單顯卡的兩倍,包括RAID 0、雙CPU之類的並行運作系統也都是如此,與常理完全相符。但無論怎樣,SLi的性能永遠讓玩家興奮,嚮往!

㈣ 加拿大pc演算法教程

1.三級流水線:其實對於PC = PC +8這個問題很簡單,這兩個PC其實代表著不同的意義,第一個PC是對於CPU而言,而第二個PC而言是我們通過編譯器看到的PC(PC指向程序正在運行的那一條指令),但是對於CPU的PC是永遠指向取指那個步,故PC = PC +8。

2.五級流水線; ARM9流水線包括取指(fetch)、解碼(decode)、執行(excute)、緩沖/數據(buffer/data)、回寫(write-back)寄存器堆。ARM9流水線在解碼階段已經開始讀取操作數寄存器,因此解碼階段的PC值和取指階段的PC值關系為:PC(decode)=PC(fetch)+4。因此執行階段的PC值和解碼階段的PC值關系為:PC(excute)=PC(decode)+4。

3.對於軟中斷函數的返回時的PC:如下

ARM Thumb

SWI PC-8 PC-4

xxx 》 PC -4 PC-2 (異常返回將執行這條指令)

yyy PC PC

因此返回指令為: MOV PC , LR

原因:異常是由指令本身引起的,因此內核在計算LR時的PC值並沒有被更新。對於ARM狀態,因為SWI指令表示將跳到異常處理函數,此時SWI這條指令的PC = PC -8,當進入異常處理函數之前,硬體會自動把PC-4保存到LR寄存器中,所以異常處理函數結束後直接MOV PC, LR就行,就會跳到xxx這一條指令去執行。對於Thumb狀態同理。

4.對於IRQ和FIQ中斷函數返回時的PC:

ARM Thumb

xxx PC-12 PC-6 (程序在運行這條代碼時就產生了中斷信號)

yyy 》 PC-8 PC-4 (異常返回將執行這條指令)

zzz PC-4 PC-2

www PC PC

返回指令為: SUBS PC, LR, #4

原因:異常在當前指令執行完成後才會被響應,因此內核在計算LR時的PC值已被更新。對於ARM狀態,程序在執行xxx這條指令時,中斷信號產生,但是由於中斷必須在這一條指令執行完之後才會被響應,執行完後,則此時對於CPU的PC已經指向了www這條指令的取指,在中斷函數函數時應該執行yyy這條指令,雖然硬體會把PC-4的值賦值給LR寄存器,但是這是指向zzz這條指令的,所以返回時應該SUBS PC, LR, #4。對於Thumb狀態同理。

㈤ 什麼是演算法的穩定性

演算法的穩定性一般是指復雜度的穩定性。

一般的演算法都具有穩定性的,也就是說有固定的多項式時間。而一般的np問題和np完全問題有可能沒有多項式的復雜度,所以可能有些問題很快,有些問題慢。

㈥ 博弈均衡的進化穩定策略的演算法

計算進化穩定策略的方法主要有兩大類:一是從動態過程出發,求出系統的平衡點,然後,再根據進化穩定策略的定義進行驗證就可以了;另一種方法就是直接用進化穩定策略定義來求。第一種方法涉及到具體的動態過程,並且只要知道動態過程就很容易求出進化穩定策略,本文略(可以參考張良橋2001)。第二種方法就是通過定義來求,下面給出一種簡單的處理方法。
根據納什均衡的定義可以知道,如果策略 是博弈的納什均衡,那麼,所有以正概率進入最優混合策略的純策略都是最優的,參與人在所有這些純策略所得的支付都是無差異的(見《博弈論與信息經濟學》102-103頁,張維迎),即有:
表示混合策略中非零概率的純策略。假定存在 且下標為 的純策略滿足 ,令B是矩陣A中對應於非零純策略的 階子矩陣。且令C為 矩陣,其中代表元素為: 。那麼當且僅當C是負定的, 就是進化穩定策略(見John Haigh 1974)。
證明:假定 ,並且存在 ,有 ,那麼很明顯有 ,其中 是第 個純策略,即在與穩定策略者群體博弈時,突變策略者得到的支付比穩定策略者還要大,所以策略 不是進化穩定策略,所以式(6)是進化穩定策略的必要條件。因此,對應於非零概率的純策略滿足: ,對滿足條件的策略 有(注意 ):
對任意 ,當且僅當
有: 。綜上所述,利用該方法來求進化穩定策略的步驟如下:
首先,令 個非零混合策略,然後解 個方程: ,定義B,C再考察矩陣C的所有特徵根是否都為負,若都是負則所得的策略就是進化穩定策略。
如求對稱博弈 ,它有兩個進化穩定策略: 。
如果某策略組合是嚴格納什均衡策略,那麼就可以直接得出它就是進化穩定策略,但如果是弱納什均衡策略,那麼就可運用上述的方法來進行判定。由此,可得到求博弈的進化穩定策略步驟:一是求出博弈所有的納什均衡;二是由支付判斷出其中的嚴格納什均衡;三對非嚴格納什均衡而言就代入上述方程,並判斷是否為負定即可以求出博弈中所有進化穩定策略。

㈦ 數據結構的排序演算法中,哪些排序是穩定的,哪些排序是不穩定的

一、穩定排序演算法

1、冒泡排序

2、雞尾酒排序

3、插入排序

4、桶排序

5、計數排序

6、合並排序

7、基數排序

8、二叉排序樹排序

二、不穩定排序演算法

1、選擇排序

2、希爾排序

3、組合排序

4、堆排序

5、平滑排序

6、快速排序

排序(Sorting) 是計算機程序設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。

一個排序演算法是穩定的,就是當有兩個相等記錄的關鍵字R和S,且在原本的列表中R出現在S之前,在排序過的列表中R也將會是在S之前。

不穩定排序演算法可能會在相等的鍵值中改變紀錄的相對次序,但是穩定排序演算法從來不會如此。不穩定排序演算法可以被特別地實現為穩定。

做這件事情的一個方式是人工擴充鍵值的比較,如此在其他方面相同鍵值的兩個對象間之比較,就會被決定使用在原先數據次序中的條目,當作一個同分決賽。然而,要記住這種次序通常牽涉到額外的空間負擔。

(7)Pc28穩定演算法擴展閱讀:

排序演算法的分類:

1、通過時間復雜度分類

計算的復雜度(最差、平均、和最好性能),依據列表(list)的大小(n)。

一般而言,好的性能是 O(nlogn),且壞的性能是 O(n^2)。對於一個排序理想的性能是 O(n)。

而僅使用一個抽象關鍵比較運算的排序演算法總平均上總是至少需要 O(nlogn)。

2、通過空間復雜度分類

存儲器使用量(空間復雜度)(以及其他電腦資源的使用)

3、通過穩定性分類

穩定的排序演算法會依照相等的關鍵(換言之就是值)維持紀錄的相對次序。

㈧ 排序演算法穩定性的常見排序演算法的穩定性


堆排序、快速排序、希爾排序、直接選擇排序不是穩定的排序演算法,而基數排序、冒泡排序、直接插入排序、折半插入排序、歸並排序是穩定的排序演算法。
首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果Ai = Aj, Ai原來在位置前,排序後Ai還是要在Aj位置前。
其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從一個鍵上排序,然後再從另一個鍵上排序,第一個鍵排序的結果可以為第二個鍵排序所用。基數排序就 是這樣,先按低位排序,逐次按高位排序,低位相同的元素其順序再高位也相同時是不會改變的。
回到主題,現在分析一下常見的排序演算法的穩定性,每個都給出簡單的理由。
(1)冒泡排序
冒泡排序就是把小的元素往前調或者把大的元素往後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。所以,如果兩個元素相等,我想你是不會再無 聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改 變,所以冒泡排序是一種穩定排序演算法。
(2)選擇排序
選擇排序是給每個位置選擇當前元素最小的,比如給第一個位置選擇最小的,在剩餘元素裡面給第二個元素選擇第二小的,依次類推,直到第n-1個元素,第n個 元素不用選擇了,因為只剩下它一個最大的元素了。那麼,在一趟選擇,如果當前元素比一個元素小,而該小的元素又出現在一個和當前元素相等的元素後面,那麼 交換後穩定性就被破壞了。比較拗口,舉個例子,序列5 8 5 2 9, 我們知道第一遍選擇第1個元素5會和2交換,那麼原序列中2個5的相對前後順序就被破壞了,所以選擇排序不是一個穩定的排序演算法。
(3)插入排序
插入排序是在一個已經有序的小序列的基礎上,一次插入一個元素。當然,剛開始這個有序的小序列只有1個元素,就是第一個元素。比較是從有序序列的末尾開 始,也就是想要插入的元素和已經有序的最大者開始比起,如果比它大則直接插入在其後面,否則一直往前找直到找到它該插入的位置。如果碰見一個和插入元素相 等的,那麼插入元素把想插入的元素放在相等元素的後面。所以,相等元素的前後順序沒有改變,從原無序序列出去的順序就是排好序後的順序,所以插入排序是穩 定的。
(4)快速排序
快速排序有兩個方向,左邊的i下標一直往右走,當a[i] <= a[center_index],其中center_index是中樞元素的數組下標,一般取為數組第0個元素。而右邊的j下標一直往左走,當a[j] > a[center_index]。如果i和j都走不動了,i <= j, 交換a[i]和a[j],重復上面的過程,直到i>j。 交換a[j]和a[center_index],完成一趟快速排序。在中樞元素和a[j]交換的時候,很有可能把前面的元素的穩定性打亂,比如序列為 5 3 3 4 3 8 9 10 11, 現在中樞元素5和3(第5個元素,下標從1開始計)交換就會把元素3的穩定性打亂,所以快速排序是一個不穩定的排序演算法,不穩定發生在中樞元素和a[j] 交換的時刻。
(5)歸並排序
歸並排序是把序列遞歸地分成短序列,遞歸出口是短序列只有1個元素(認為直接有序)或者2個序列(1次比較和交換),然後把各個有序的段序列合並成一個有 序的長序列,不斷合並直到原序列全部排好序。可以發現,在1個或2個元素時,1個元素不會交換,2個元素如果大小相等也沒有人故意交換,這不會破壞穩定 性。那麼,在短的有序序列合並的過程中,穩定是是否受到破壞?沒有,合並過程中我們可以保證如果兩個當前元素相等時,我們把處在前面的序列的元素保存在結 果序列的前面,這樣就保證了穩定性。所以,歸並排序也是穩定的排序演算法。
(6)基數排序
基數排序是按照低位先排序,然後收集;再按照高位排序,然後再收集;依次類推,直到最高位。有時候有些屬性是有優先順序順序的,先按低優先順序排序,再按高優 先級排序,最後的次序就是高優先順序高的在前,高優先順序相同的低優先順序高的在前。基數排序基於分別排序,分別收集,所以其是穩定的排序演算法。
(7)希爾排序(shell)
希爾排序是按照不同步長對元素進行插入排序,當剛開始元素很無序的時候,步長最大,所以插入排序的元素個數很少,速度很快;當元素基本有序了,步長很小, 插入排序對於有序的序列效率很高。所以,希爾排序的時間復雜度會比o(n^2)好一些。由於多次插入排序,我們知道一次插入排序是穩定的,不會改變相同元 素的相對順序,但在不同的插入排序過程中,相同的元素可能在各自的插入排序中移動,最後其穩定性就會被打亂,所以shell排序是不穩定的。
(8)堆排序
我們知道堆的結構是節點i的孩子為2*i和2*i+1節點,大頂堆要求父節點大於等於其2個子節點,小頂堆要求父節點小於等於其2個子節點。在一個長為n 的序列,堆排序的過程是從第n/2開始和其子節點共3個值選擇最大(大頂堆)或者最小(小頂堆),這3個元素之間的選擇當然不會破壞穩定性。但當為n /2-1, n/2-2, ...1這些個父節點選擇元素時,就會破壞穩定性。有可能第n/2個父節點交換把後面一個元素交換過去了,而第n/2-1個父節點把後面一個相同的元素沒 有交換,那麼這2個相同的元素之間的穩定性就被破壞了。所以,堆排序不是穩定的排序演算法。
綜上,得出結論: 選擇排序、快速排序、希爾排序、堆排序不是穩定的排序演算法,而冒泡排序、插入排序、歸並排序和基數排序是穩定的排序演算法。

㈨ 密文是什麼 具體給我講解一下

密文是相對於明文說的,明文其實就是你要傳達的消息,而明文通過加密之後就成了密文,密文其實是信息安全的一個詞彙。幫你介紹一下。

信息安全的發展歷史

通信保密科學的誕生
古羅馬帝國時期的Caesar密碼:能夠將明文信息變換為人們看不懂的字元串,(密文),當密文傳到夥伴手中時,又可方便的還原為原來的明文形式。 Caesar密碼由明文字母循環移3位得到。
1568年,L.Battista發明了多表代替密碼,並在美國南北戰爭期間有聯軍使用。例:Vigenere密碼和Beaufort密碼
1854年,Playfair發明了多字母代替密碼,英國在第一次世界大戰中使用了此密碼。例:Hill密碼,多表、多字母代替密碼成為古典密碼學的主流。
密碼破譯技術(密碼分析)的發展:例:以1918年W.Friedman使用重合指數破譯多表代替密碼技術為里程碑。 1949年C.Shannon的《保密系統的通信理論》文章發表在貝爾系統技術雜志上。這兩個成果為密碼學的科學研究奠定了基礎。從藝術變為科學。實際上,這就是通信保密科學的誕生,其中密碼是核心技術。

公鑰密碼學革命
25年之後,20世紀70年代,IBM公司的DES(美國數據加密標准)和1976年Diffie-Hellman,提出了公開密鑰密碼思想,1977年公鑰密碼演算法RSA的提出為密碼學的發展注入了新的活力。
公鑰密碼掀起了一場革命,對信息安全有三方面的貢獻:首次從計算復雜性上刻畫了密碼演算法的強度,突破了Shannon僅關心理論強度的局限性;他將傳統密碼演算法中兩個密鑰管理中的保密性要求,轉換為保護其中一格的保密性及另一格的完整性的要求;它將傳統密碼演算法中密鑰歸屬從通信兩方變為一個單獨的用戶,從而使密鑰的管理復雜度有了較大下降。
公鑰密碼的提出,注意:一是密碼學的研究逐步超越了數據的通信保密范圍,開展了對數據的完整性、數字簽名等技術的研究;二是隨著計算機和網路的發展,密碼學一逐步成為計算機安全、網路安全的重要支柱,使得數據安全成為信息安全的全新內容,超越了以往物理安全占據計算機安全的主導地位狀態。

訪問控制技術與可信計算機評估准則
1969年,B.Lampson提出了訪問控制模型。
1973年,D.Bell 和L.Lapala,創立了一種模擬軍事安全策略的計算機操作模型,這是最早也是最常用的一種計算機多級安全模型。
1985年,美國國防部在Bell-Lapala模型的基礎上提出了可信計算機評估准則(通常稱為橘皮書)。按照計算機系統的安全防護能力,分成8個等級。
1987年,Clark-Wilson模型針對完整性保護和商業應用提出的。
信息保障
1998年10月,美國國家安全局(NSA)頒布了信息保障技術框架1.1版,2003年2月6日,美國國防部(DOD)頒布了信息保障實施命令8500.2,從而信息保障成為美國國防組織實施信息化作戰的既定指導思想。
信息保障(IA:information assurance):通過確保信息的可用性、完整性、可識別性、保密性和抵賴性來保護信息系統,同時引入保護、檢測及響應能力,為信息系統提供恢復功能。這就是信息保障模型PDRR。
protect保護、detect檢測、react響應、restore 恢復
美國信息保障技術框架的推進使人們意識到對信息安全的認識不要停留在保護的框架之下,同時還需要注意信息系統的檢測和響應能力。
2003年,中國發布了《國家信息領導小組關於信息安全保障工作的意見》,這是國家將信息安全提到戰略高度的指導性文件

信息保密技術的研究成果:
發展各種密碼演算法及其應用:
DES(數據加密標准)、RSA(公開密鑰體制)、ECC(橢圓曲線離散對數密碼體制)等。
計算機信息系統安全模型和安全評價准則:
訪問監視器模型、多級安全模型等;TCSEC(可信計算機系統評價准則)、ITSEC(信息技術安全評價准則)等。

加密(Encryption)
加密是通過對信息的重新組合,使得只有收發雙方才能解碼並還原信息的一種手段。
傳統的加密系統是以密鑰為基礎的,這是一種對稱加密,也就是說,用戶使用同一個密鑰加密和解密。
目前,隨著技術的進步,加密正逐步被集成到系統和網路中,如IETF正在發展的下一代網際協議IPv6。硬體方面,Intel公司也在研製用於PC機和伺服器主板的加密協處理器。

身份認證(Authentication)

防火牆是系統的第一道防線,用以防止非法數據的侵入,而安全檢查的作用則是阻止非法用戶。有多種方法來鑒別一個用戶的合法性,密碼是最常用的,但由於有許多用戶採用了很容易被猜到的單詞或短語作為密碼,使得該方法經常失效。其它方法包括對人體生理特徵(如指紋)的識別,智能IC卡和USB盤。

數字簽名(Digital Signature)
數字簽名可以用來證明消息確實是由發送者簽發的,而且,當數字簽名用於存儲的數據或程序時,可以用來驗證數據或程序的完整性。
美國政府採用的數字簽名標准(Digital Signature Standard,DSS)使用了安全哈希運演算法則。用該演算法對被處理信息進行計算,可得到一個160位(bit)的數字串,把這個數字串與信息的密鑰以某種方式組合起來,從而得到數字簽名。

內容檢查(Content Inspection)
即使有了防火牆、身份認證和加密,人們仍擔心遭到病毒的攻擊。有些病毒通過E-mail或用戶下載的ActiveX和Java小程序(Applet)進行傳播,帶病毒的Applet被激活後,又可能會自動下載別的Applet。現有的反病毒軟體可以清除E-mail病毒,對付新型Java和ActiveX病毒也有一些辦法,如完善防火牆,使之能監控Applet的運行,或者給Applet加上標簽,讓用戶知道他們的來源。

介紹一些加密的知識

密鑰加/解密系統模型
在1976年,Diffie及Hellman發表其論文「New Directions in Cryptography」[9]之前,所謂的密碼學就是指對稱密鑰密碼系統。因為加/解密用的是同一把密鑰,所以也稱為單一密鑰密碼系統。

這類演算法可謂歷史悠久,從最早的凱撒密碼到目前使用最多的DES密碼演算法,都屬於單一密鑰密碼系統。

通常,一個密鑰加密系統包括以下幾個部分:
① 消息空間M(Message)
② 密文空間C(Ciphertext)
③ 密鑰空間K(Key)
④ 加密演算法E(Encryption Algorithm)
⑤ 解密演算法D(Decryption Algorithm)
消息空間中的消息M(稱之為明文)通過由加密密鑰K1控制的加密演算法加密後得到密文C。密文C通過解密密鑰K2控制的解密演算法又可恢復出原始明文M。即:
EK1(M)=C
DK2(C)=M
DK2(EK1(M))=M
概念:
當演算法的加密密鑰能夠從解密密鑰中推算出來,或反之,解密密鑰可以從加密密鑰中推算出來時,稱此演算法為對稱演算法,也稱秘密密鑰演算法或單密鑰演算法;

當加密密鑰和解密密鑰不同並且其中一個密鑰不能通過另一個密鑰推算出來時,稱此演算法為公開密鑰演算法。

1.凱撒密碼變換
更一般化的移位替代密碼變換為
加密:E(m)=(m+k) mod 26
解密:D(c)=(c-k) mod 26

2.置換密碼
在置換密碼中,明文和密文的字母保持相同,但順序被打亂了。在簡單的縱行置換密碼中,明文以固定的寬度水平地寫在一張圖表紙上,密文按垂直方向讀出;解密就是將密文按相同的寬度垂直地寫在圖表紙上,然後水平地讀出明文。例如:
明文:encryption is the transformation of data into some unreadable form
密文:eiffob nsodml ctraee rhmtuf yeaano pttirr trinem iaota onnod nsosa

20世紀40年代,Shannon提出了一個常用的評估概念。特認為一個好的加密演算法應具有模糊性和擴散性。
模糊性:加密演算法應隱藏所有的局部模式,即,語言的任何識別字元都應變得模糊,加密法應將可能導致破解密鑰的提示性語言特徵進行隱藏;
擴散性:要求加密法將密文的不同部分進行混合,是任何字元都不在其原來的位置。

加密演算法易破解的原因是未能滿足這兩個Shannon條件。

數據加密標准(DES)

DES演算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位,其功能是把輸入的64位數據塊按位重新組合,並把輸出分為L0、R0兩部分,每部分各長32位,經過16次迭代運算後。得到L16、R16,將此作為輸入,進行逆置換,即得到密文輸出。逆置換正好是初始置的逆運算.

具體方法 需要圖 我放不上去對不起了
可以將DES演算法歸結如下:
子密鑰生成:
C[0]D[0] = PC–1(K)
for 1 <= i <= 16
{C[i] = LS[i](C[i−1])
D[i] = LS[i](D[i−1])
K[i] = PC–2(C[i]D[i])}
加密過程:
L[0]R[0] = IP(x)
for 1 <= i <= 16
{L[i] = R[i−1]
R[i] = L[i−1] XOR f (R[i−1], K[i])}
c= IP−1(R[16]L[16])v
解密過程:
R[16]L[16] = IP(c)
for 1 <= i <= 16
{R[i−1] = L[i]
L[i−1] = R[i] XOR f (L[i], K[i])}
x= IP−1(L[0]R[0])
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的「每輪」密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需要用很長時間,而用硬體解碼速度非常快,但幸運的是當時大多數黑客並沒有足夠的設備製造出這種硬體設備。
在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。所以,當時DES被認為是一種十分強壯的加密方法。 但是,當今的計算機速度越來越快了,製造一台這樣特殊的機器的花費已經降到了十萬美元左右,所以用它來保護十億美元的銀行間線纜時,就會仔細考慮了。另一個方面,如果只用它來保護一台伺服器,那麼DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個伺服器而花那麼多的錢破解DES密文。由於現在已經能用二十萬美圓製造一台破譯DES的特殊的計算機,所以現在再對要求「強壯」加密的場合已經不再適用了

DES演算法的應用誤區

DES演算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES演算法進行攻擊外,還沒有發現更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一台計算機的速度是每一秒種檢測一百萬個密鑰,則它搜索完全部密鑰就需要將近2285年的時間,可見,這是難以實現的,當然,隨著科學技術的發展,當出現超高速計算機後,我們可考慮把DES密鑰的長度再增長一些,以此來達到更高的保密程度。
由上述DES演算法介紹我們可以看到:DES演算法中只用到64位密鑰中的其中56位,而第8、16、24、......64位8個位並未參與DES運算,這一點,向我們提出了一個應用上的要求,即DES的安全性是基於除了8,16,24,......64位外的其餘56位的組合變化256才得以保證的。因此,在實際應用中,我們應避開使用第8,16,24,......64位作為有效數據位,而使用其它的56位作為有效數據位,才能保證DES演算法安全可靠地發揮作用。如果不了解這一點,把密鑰Key的8,16,24,..... .64位作為有效數據使用,將不能保證DES加密數據的安全性,對運用DES來達到保密作用的系統產生數據被破譯的危險,這正是DES演算法在應用上的誤區,留下了被人攻擊、被人破譯的極大隱患。

A5 算 法

序列密碼簡介
序列密碼又稱流密碼,它將明文劃分成字元(如單個字母)或其編碼的基本單元(如0、1),然後將其與密鑰流作用以加密,解密時以同步產生的相同密鑰流實現。
序列密碼強度完全依賴於密鑰流產生器所產生的序列的隨機性和不可預測性,其核心問題是密鑰流生成器的設計。而保持收發兩端密鑰流的精確同步是實現可靠解密的關鍵技術。

A5演算法
A5演算法是一種序列密碼,它是歐洲GSM標准中規定的加密演算法,用於數字蜂窩行動電話的加密,加密從用戶設備到基站之間的鏈路。A5演算法包括很多種,主要為A5/1和A5/2。其中,A5/1為強加密演算法,適用於歐洲地區;A5/2為弱加密演算法,適用於歐洲以外的地區。這里將詳細討論A5/1演算法。
A5/1演算法的主要組成部分是三個長度不同的線性反饋移位寄存器(LFSR)R1、R2和R3,其長度分別為19、22和23。三個移位寄存器在時鍾的控制下進行左移,每次左移後,寄存器最低位由寄存器中的某些位異或後的位填充。各寄存器的反饋多項式為:
R1:x18+x17+x16+x13
R2:x21+x20
R3:x22+x21+x20+x7
A5演算法的輸入是64位的會話密鑰Kc和22位的隨機數(幀號)。

IDEA
IDEA即國際數據加密演算法,它的原型是PES(Proposed Encryption Standard)。對PES改進後的新演算法稱為IPES,並於1992年改名為IDEA(International Data Encryption Algorithm)。

IDEA是一個分組長度為64位的分組密碼演算法,密鑰長度為128位,同一個演算法即可用於加密,也可用於解密。
IDEA的加密過程包括兩部分:
(1) 輸入的64位明文組分成四個16位子分組:X1、X2、X3和X4。四個子分組作為演算法第一輪的輸入,總共進行八輪的迭代運算,產生64位的密文輸出。
(2) 輸入的128位會話密鑰產生八輪迭代所需的52個子密鑰(八輪運算中每輪需要六個,還有四個用於輸出變換)

子密鑰產生:輸入的128位密鑰分成八個16位子密鑰(作為第一輪運算的六個和第二輪運算的前兩個密鑰);將128位密鑰循環左移25位後再得八個子密鑰(前面四個用於第二輪,後面四個用於第三輪)。這一過程一直重復,直至產生所有密鑰。
IDEA的解密過程和加密過程相同,只是對子密鑰的要求不同。下表給出了加密子密鑰和相應的解密子密鑰。
密鑰間滿足:
Zi(r) ⊙ Zi(r) −1=1 mod (216+1)
−Zi(r)  +  Zi(r) =0 mod (216+1)

Blowfish演算法
Blowfish是Bruce Schneier設計的,可以免費使用。
Blowfish是一個16輪的分組密碼,明文分組長度為64位,使用變長密鑰(從32位到448位)。Blowfish演算法由兩部分組成:密鑰擴展和數據加密。

1. 數據加密
數據加密總共進行16輪的迭代,如圖所示。具體描述為(將明文x分成32位的兩部分:xL, xR)
for i = 1 to 16
{
xL = xL XOR Pi
xR = F(xL) XOR xR
if
{
交換xL和xR

}
}
xR = xR XOR P17
xL = xL XOR P18
合並xL 和xR
其中,P陣為18個32位子密鑰P1,P2,…,P18。
解密過程和加密過程完全一樣,只是密鑰P1,P2,…,P18以逆序使用。
2. 函數F
把xL分成四個8位子分組:a, b, c 和d,分別送入四個S盒,每個S盒為8位輸入,32位輸出。四個S盒的輸出經過一定的運算組合出32位輸出,運算為
F(xL) =((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232
其中,Si,x表示子分組x(x=a、b、c或d)經過Si (i=1、2、3或4)盒的輸出。

沒有太多地方寫了,不把整個過程列上面了,就簡單介紹一下好了。

GOST演算法
GOST是前蘇聯設計的分組密碼演算法,為前蘇聯國家標准局所採用,標准號為:28147–89[5]。
GOST的消息分組為64位,密鑰長度為256位,此外還有一些附加密鑰,採用32輪迭代。

RC5演算法
RC5是一種分組長度、密鑰長度和加密迭代輪數都可變的分組密碼體制。RC5演算法包括三部分:密鑰擴展、加密演算法和解密演算法。

PKZIP演算法
PKZIP加密演算法是一個一次加密一個位元組的、密鑰長度可變的序列密碼演算法,它被嵌入在PKZIP數據壓縮程序中。
該演算法使用了三個32位變數key0、key1、key2和一個從key2派生出來的8位變數key3。由密鑰初始化key0、key1和key2並在加密過程中由明文更新這三個變數。PKZIP序列密碼的主函數為updata_keys()。該函數根據輸入位元組(一般為明文),更新三個32位的變數並獲得key3。

重點:單向散列函數

MD5 算 法

md5的全稱是message-digestalgorithm5(信息-摘要演算法),在90年代初由和rsadatasecurityinc的ronaldl.rivest開發出來,經md2、md3和md4發展而來。它的作用是讓大容量信息在用數字簽名軟體簽署私人密匙前被"壓縮"成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的大整數)。不管是md2、md4還是md5,它們都需要獲得一個隨機長度的信息並產生一個128位的信息摘要。雖然這些演算法的結構或多或少有些相似,但md2的設計與md4和md5完全不同,那是因為md2是為8位機器做過設計優化的,而md4和md5卻是面向32位的電腦。
rivest在1989年開發出md2演算法。在這個演算法中,首先對信息進行數據補位,使信息的位元組長度是16的倍數。然後,以一個16位的檢驗和追加到信息末尾。並且根據這個新產生的信息計算出散列值。後來,rogier和chauvaud發現如果忽略了檢驗和將產生md2沖突。md2演算法的加密後結果是唯一的--既沒有重復。 為了加強演算法的安全性,rivest在1990年又開發出md4演算法。md4演算法同樣需要填補信息以確保信息的位元組長度加上448後能被512整除(信息位元組長度mod512=448)。然後,一個以64位二進製表示的信息的最初長度被添加進來。信息被處理成512位damg?rd/merkle迭代結構的區塊,而且每個區塊要通過三個不同步驟的處理。denboer和bosselaers以及其他人很快的發現了攻擊md4版本中第一步和第三步的漏洞。dobbertin向大家演示了如何利用一部普通的個人電腦在幾分鍾內找到md4完整版本中的沖突(這個沖突實際上是一種漏洞,它將導致對不同的內容進行加密卻可能得到相同的加密後結果)。毫無疑問,md4就此被淘汰掉了。 盡管md4演算法在安全上有個這么大的漏洞,但它對在其後才被開發出來的好幾種信息安全加密演算法的出現卻有著不可忽視的引導作用。除了md5以外,其中比較有名的還有sha-1、ripe-md以及haval等。

一年以後,即1991年,rivest開發出技術上更為趨近成熟的md5演算法。它在md4的基礎上增加了"安全-帶子"(safety-belts)的概念。雖然md5比md4稍微慢一些,但卻更為安全。這個演算法很明顯的由四個和md4設計有少許不同的步驟組成。在md5演算法中,信息-摘要的大小和填充的必要條件與md4完全相同。denboer和bosselaers曾發現md5演算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發現的加密後結果了。 vanoorschot和wiener曾經考慮過一個在散列中暴力搜尋沖突的函數(brute-forcehashfunction),而且他們猜測一個被設計專門用來搜索md5沖突的機器(這台機器在1994年的製造成本大約是一百萬美元)可以平均每24天就找到一個沖突。但單從1991年到2001年這10年間,竟沒有出現替代md5演算法的md6或被叫做其他什麼名字的新演算法這一點,我們就可以看出這個瑕疵並沒有太多的影響md5的安全性。上面所有這些都不足以成為md5的在實際應用中的問題。並且,由於md5演算法的使用不需要支付任何版權費用的,所以在一般的情況下(非絕密應用領域。但即便是應用在絕密領域內,md5也不失為一種非常優秀的中間技術),md5怎麼都應該算得上是非常安全的了。

演算法
MD表示消息摘要(Message Digest)。MD5是MD4的改進版,該演算法對輸入的任意長度消息產生128位散列值(或消息摘要。MD5演算法可用圖4-2表示。
對md5演算法簡要的敘述可以為:md5以512位分組來處理輸入的信息,且每一分組又被劃分為16個32位子分組,經過了一系列的處理後,演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位散列值。

1) 附加填充位
首先填充消息,使其長度為一個比512的倍數小64位的數。填充方法:在消息後面填充一位1,然後填充所需數量的0。填充位的位數從1~512。
2) 附加長度
將原消息長度的64位表示附加在填充後的消息後面。當原消息長度大於264時,用消息長度mod 264填充。這時,消息長度恰好是512的整數倍。令M[0 1…N−1]為填充後消息的各個字(每字為32位),N是16的倍數。

3) 初始化MD緩沖區
初始化用於計算消息摘要的128位緩沖區。這個緩沖區由四個32位寄存器A、B、C、D表示。寄存器的初始化值為(按低位位元組在前的順序存放):
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10

4) 按512位的分組處理輸入消息
這一步為MD5的主循環,包括四輪,如圖4-3所示。每個循環都以當前的正在處理的512比特分組Yq和128比特緩沖值ABCD為輸入,然後更新緩沖內容。
四輪操作的不同之處在於每輪使用的非線性函數不同,在第一輪操作之前,首先把A、B、C、D復制到另外的變數a、b、c、d中。這四個非線性函數分別為(其輸入/輸出均為32位字):
F(X,Y,Z) = (XY)((~X) Z)
G(X,Y,Z) = (XZ)(Y(~Z))
H(X,Y,Z) = XYZ
I(X,Y,Z) = Y(X(~Z))
其中,表示按位與;表示按位或;~表示按位反;表示按位異或。
此外,由圖4-4可知,這一步中還用到了一個有64個元素的表T[1..64],T[i]=232×abs(sin(i)),i的單位為弧度。
根據以上描述,將這一步驟的處理過程歸納如下:
for i = 0 to N/16−1 do
/* 每次循環處理16個字,即512位元組的消息分組*/
/*把第i個字塊(512位)分成16個32位子分組拷貝到X中*/
for j = 0 to 15 do
Set X[j] to M[i*16+j]
end /*j 循環*/
/*把A存為AA,B存為BB,C存為CC,D存為DD*/
AA = A
BB = B
CC = C
DD = D
/* 第一輪*/
/* 令[abcd k s i]表示操作
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s)
其中,Y<<<s表示Y循環左移s位*/
/* 完成下列16個操作*/
[ABCD 0 7 1  ] [DABC 1 12 2  ] [CDAB 2 17 3  ] [BCDA 3 22 4  ]
[ABCD 4 7 5  ] [DABC 5 12 6  ] [CDAB 6 17 7  ] [BCDA 7 22 8  ]
[ABCD 8 7 9  ] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]
/* 第二輪*/
/*令[abcd k s i]表示操作
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s)*/
/*完成下列16個操作*/
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

/*第三輪*/
/*令[abcd k s t]表示操作
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s)*/
/*完成以下16個操作*/
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]
/*第四輪*/
/*令[abcd k s t]表示操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s) */
/*完成以下16個操作*/
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]
A = A + AA
B = B + BB
C = C + CC
D = D + DD
end /*i循環*/
5) 輸出
由A、B、C、D四個寄存器的輸出按低位位元組在前的順序(即以A的低位元組開始、D的高位元組結束)得到128位的消息摘要。
以上就是對MD5演算法的描述。MD5演算法的運算均為基本運算,比較容易實現且速度很快。

安全散列函數(SHA)

演算法
SHA是美國NIST和NSA共同設計的安全散列演算法(Secure Hash Algorithm),用於數字簽名標准DSS(Digital Signature Standard)。SHA的修改版SHA–1於1995年作為美國聯邦信息處理標准公告(FIPS PUB 180–1)發布[2]。

㈩ 小菜求學 PID

- sptr->Integral * sptr->LastError //E[k-1]項

+ sptr->Derivative * sptr->PrevError; //E[k-2]項

//存儲誤差,用於下次計算

sptr->PrevError = sptr->LastError;

sptr->LastError = iError;

//返回增量值

return(iIncpid);

}

====================================================================================================

自動控制演算法的學習筆記 (PID控制)待續
2009-04-28 11:13

最近被逼無奈要搞ROBOCUP的路徑規劃,在控制上遇到這個經典的演算法,故總結了書上以及網上的資料......

1. PID調試步驟

沒有一種控制演算法比PID調節規律更有效、更方便的了。現在一些時髦點的調節器基本源自PID。甚至可以這樣說:PID調節器是其它控制調節演算法的基礎。

為什麼PID應用如此廣泛、又長久不衰?

因為PID解決了自動控制理論所要解決的最基本問題,既系統的穩定性、快速性和准確性。調節PID的參數,可實現在系統穩定的前提下,兼顧系統的帶載能力和抗擾能力,同時,在PID調節器中引入積分項,系統增加了一個零積點,使之成為一階或一階以上的系統,這樣系統階躍響應的穩態誤差就為零。

由於自動控制系統被控對象的千差萬別,PID的參數也必須隨之變化,以滿足系統的性能要求。這就給使用者帶來相當的麻煩,特別是對初學者。下面簡單介紹一下調試PID參數的一般步驟:

1.負反饋

自動控制理論也被稱為負反饋控制理論。首先檢查系統接線,確定系統的反饋為負反饋。例如電機調速系統,輸入信號為正,要求電機正轉時,反饋信號也為正(PID演算法時,誤差=輸入-反饋),同時電機轉速越高,反饋信號越大。其餘系統同此方法。

2.PID調試一般原則

a.在輸出不振盪時,增大比例增益P。

b.在輸出不振盪時,減小積分時間常數Ti。

c.在輸出不振盪時,增大微分時間常數Td。

3.一般步驟

a.確定比例增益P

確定比例增益P 時,首先去掉PID的積分項和微分項,一般是令Ti=0、Td=0(具體見PID的參數設定說明),使PID為純比例調節。輸入設定為系統允許的最大值的60%~70%,由0逐漸加大比例增益P,直至系統出現振盪;再反過來,從此時的比例增益P逐漸減小,直至系統振盪消失,記錄此時的比例增益P,設定PID的比例增益P為當前值的60%~70%。比例增益P調試完成。

b.確定積分時間常數Ti

比例增益P確定後,設定一個較大的積分時間常數Ti的初值,然後逐漸減小Ti,直至系統出現振盪,之後在反過來,逐漸加大Ti,直至系統振盪消失。記錄此時的Ti,設定PID的積分時間常數Ti為當前值的150%~180%。積分時間常數Ti調試完成。

c.確定積分時間常數Td

積分時間常數Td一般不用設定,為0即可。若要設定,與確定 P和Ti的方法相同,取不振盪時的30%。

d.系統空載、帶載聯調,再對PID參數進行微調,直至滿足要求。

2.PID控制簡介

目前工業自動化水平已成為衡量各行各業現代化水平的一個重要標志。同時,控制理論的發展也經歷了古典控制理論、現代控制理論和智能控制理論三個階段。智能控制的典型實例是模糊全自動洗衣機等。自動控制系統可分為開環控制系統和閉環控制系統。一個控制系統包括控制器﹑感測器﹑變送器﹑執行機構﹑輸入輸出介面。控制器的輸出經過輸出介面﹑執行機構﹐加到被控系統上﹔控制系統的被控量﹐經過感測器﹐變送器﹐通過輸入介面送到控制器。不同的控制系統﹐其感測器﹑變送器﹑執行機構是不一樣的。比如壓力控制系統要採用壓力感測器。電加熱控制系統的感測器是溫度感測器。目前,PID控制及其控制器或智能PID控制器(儀表)已經很多,產品已在工程實際中得到了廣泛的應用,有各種各樣的PID控制器產品,各大公司均開發了具有PID參數自整定功能的智能調節器(intelligent regulator),其中PID控制器參數的自動調整是通過智能化調整或自校正、自適應演算法來實現。有利用PID控制實現的壓力、溫度、流量、液位控制器,能實現PID控制功能的可編程式控制制器(PLC),還有可實現PID控制的PC系統等等。 可編程式控制制器(PLC) 是利用其閉環控制模塊來實現PID控制,而可編程式控制制器(PLC)可以直接與ControlNet相連,如Rockwell的PLC-5等。還有可以實現PID控制功能的控制器,如Rockwell 的Logix產品系列,它可以直接與ControlNet相連,利用網路來實現其遠程式控制制功能。
1、開環控制系統

開環控制系統(open-loop control system)是指被控對象的輸出(被控制量)對控制器(controller)的輸出沒有影響。在這種控制系統中,不依賴將被控量反送回來以形成任何閉環迴路。

2、閉環控制系統

閉環控制系統(closed-loop control system)的特點是系統被控對象的輸出(被控制量)會反送回來影響控制器的輸出,形成一個或多個閉環。閉環控制系統有正反饋和負反饋,若反饋信號與系統給定值信號相反,則稱為負反饋( Negative Feedback),若極性相同,則稱為正反饋,一般閉環控制系統均採用負反饋,又稱負反饋控制系統。閉環控制系統的例子很多。比如人就是一個具有負反饋的閉環控制系統,眼睛便是感測器,充當反饋,人體系統能通過不斷的修正最後作出各種正確的動作。如果沒有眼睛,就沒有了反饋迴路,也就成了一個開環控制系統。另例,當一台真正的全自動洗衣機具有能連續檢查衣物是否洗凈,並在洗凈之後能自動切斷電源,它就是一個閉環控制系統。

3、階躍響應

階躍響應是指將一個階躍輸入(step function)加到系統上時,系統的輸出。穩態誤差是指系統的響應進入穩態後﹐系統的期望輸出與實際輸出之差。控制系統的性能可以用穩、准、快三個字來描述。穩是指系統的穩定性(stability),一個系統要能正常工作,首先必須是穩定的,從階躍響應上看應該是收斂的﹔準是指控制系統的准確性、控制精度,通常用穩態誤差來(Steady-state error)描述,它表示系統輸出穩態值與期望值之差﹔快是指控制系統響應的快速性,通常用上升時間來定量描述。

4、PID控制的原理和特點

在工程實際中,應用最為廣泛的調節器控制規律為比例、積分、微分控制,簡稱PID控制,又稱PID調節。PID控制器問世至今已有近70年歷史,它以其結構簡單、穩定性好、工作可靠、調整方便而成為工業控制的主要技術之一。當被控對象的結構和參數不能完全掌握,或得不到精確的數學模型時,控制理論的其它技術難以採用時,系統控制器的結構和參數必須依靠經驗和現場調試來確定,這時應用PID控制技術最為方便。即當我們不完全了解一個系統和被控對象﹐或不能通過有效的測量手段來獲得系統參數時,最適合用PID控制技術。PID控制,實際中也有PI和PD控制。PID控制器就是根據系統的誤差,利用比例、積分、微分計算出控制量進行控制的。

比例(P)控制

比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。當僅有比例控制時系統輸出存在穩態誤差(Steady-state error)。 比例調節作用:是按比例反應系統的偏差,系統一旦出現了偏差,比例調節立即產生調節作用用以減少偏差。比例作用大,可以加快調節,減少誤差,但是過大的比例,使系統的穩定性下降,甚至造成系統的不穩定。

積分(I)控制

在積分控制中,控制器的輸出與輸入誤差信號的積分成正比關系。對一個自動控制系統,如果在進入穩態後存在穩態誤差,則稱這個控制系統是有穩態誤差的或簡稱有差系統(System with Steady-state Error)。為了消除穩態誤差,在控制器中必須引入「積分項」。積分項對誤差取決於時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減小,直到等於零。因此,比例+積分(PI)控制器,可以使系統在進入穩態後無穩態誤差。積分調節作用:是使系統消除穩態誤差,提高無差度。因為有誤差,積分調節就進行,直至無差,積分調節停止,積分調節輸出一常值。積分作用的強弱取決與積分時間常數Ti,Ti越小,積分作用就越強。反之Ti大則積分作用弱,加入積分調節可使系統穩定性下降,動態響應變慢。積分作用常與另兩種調節規律結合,組成PI調節器或PID調節器。

微分(D)控制

在微分控制中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關系。 自動控制系統在克服誤差的調節過程中可能會出現振盪甚至失穩。其原因是由於存在有較大慣性組件(環節)或有滯後(delay)組件,具有抑制誤差的作用,其變化總是落後於誤差的變化。解決的辦法是使抑制誤差的作用的變化「超前」,即在誤差接近零時,抑制誤差的作用就應該是零。這就是說,在控制器中僅引入「比例」項往往是不夠的,比例項的作用僅是放大誤差的幅值,而目前需要增加的是「微分項」,它能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控製作用等於零,甚至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或滯後的被控對象,比例+微分(PD)控制器能改善系統在調節過程中的動態特性。微分調節作用:微分作用反映系統偏差信號的變化率,具有預見性,能預見偏差變化的趨勢,因此能產生超前的控製作用,在偏差還沒有形成之前,已被微分調節作用消除。因此,可以改善系統的動態性能。在微分時間選擇合適情況下,可以減少超調,減少調節時間。微分作用對雜訊干擾有放大作用,因此過強的加微分調節,對系統抗干擾不利。此外,微分反應的是變化率,而當輸入沒有變化時,微分作用輸出為零。微分作用不能單獨使用,需要與另外兩種調節規律相結合,組成PD或PID控制器。

5、PID控制器的參數整定

PID控制器的參數整定是控制系統設計的核心內容。它是根據被控過程的特性確定PID控制器的比例系數、積分時間和微分時間的大小。PID控制器參數整定的方法很多,概括起來有兩大類:一是理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器參數。這種方法所得到的計算數據未必可以直接用,還必須通過工程實際進行調整和修改。二是工程整定方法,它主要依賴工程經驗,直接在控制系統的試驗中進行,且方法簡單、易於掌握,在工程實際中被廣泛採用。PID控制器參數的工程整定方法,主要有臨界比例法、反應曲線法和衰減法。三種方法各有其特點,其共同點都是通過試驗,然後按照工程經驗公式對控制器參數進行整定。但無論採用哪一種方法所得到的控制器參數,都需要在實際運行中進行最後調整與完善。現在一般採用的是臨界比例法。利用該方法進行 PID控制器參數的整定步驟如下:(1)首先預選擇一個足夠短的采樣周期讓系統工作﹔(2)僅加入比例控制環節,直到系統對輸入的階躍響應出現臨界振盪,記下這時的比例放大系數和臨界振盪周期﹔(3)在一定的控制度下通過公式計算得到PID控制器的參數。

3.PID控制器參數的工程整定,各種調節系統中PID參數經驗數據以下可參照:

溫度T: P=20~60%,T=180~600s,D=3-180s
壓力P: P=30~70%,T=24~180s,
液位L: P=20~80%,T=60~300s,
流量L: P=40~100%,T=6~60s。

4. PID常用口訣:

參數整定找最佳,從小到大順序查
先是比例後積分,最後再把微分加
曲線振盪很頻繁,比例度盤要放大
曲線漂浮繞大灣,比例度盤往小扳
曲線偏離回復慢,積分時間往下降
曲線波動周期長,積分時間再加長
曲線振盪頻率快,先把微分降下來
動差大來波動慢。微分時間應加長
理想曲線兩個波,前高後低4比1
一看二調多分析,調節質量不會低

====================================================================================================

很多兄弟姐妹來問關於PID控制器的情況,偶就結合自己的理解,盡可能淺顯的講述一下PID控制的概念和如何設計一個簡單的PID控制器的設計。其目的就是有興趣朋友們可以跟這個設計一個簡單的PID控制器
所謂的控制首先分有反饋控制和無反饋控制,我們當然討論的PID當然是有反饋控制了。所謂的有反饋控制無非是要根據被控量的情況參與運算來決定操縱量的大小或者方向,那麼到底如何根據被控兩來決定操縱量的大小呢,唉,這就有很多分類了,所謂的高級的控制方式也就是「高級」在這個節骨眼上,有什麼「自適應控制、模糊控制、預測控制、神經網路控制、專家智能控制」等等(至於到底這些控制方式有什麼優點,唉,我只用過PID,別的也說不清楚,去抄書的話也沒有說服力,關鍵是也懶的去抄。那位老弟如果要作論文,可以在這里發揮一下,資料到處都是)。但是就目前而言,在工業控制領域尤其是控制系統的底層,PID控制演算法仍然獨霸鰲頭,佔領著80%左右的市場份額,當然,這里所說的PID控制演算法不是俠義上的固定PID,現在不是講究多學科融合嗎?人們在PID控制規律中吸取了其他「高級」的控制規律的優點,出現了諸多的新穎的控制器如自校正PID、專家自適應PID、預估PID、模糊PID、神經網路PID、非線性 PID等新型PID控制器。至於所謂的變種的PID演算法如什麼「遇限削弱微分」微分先行,積分分離「bangbang+PID」等等,已經不算是什麼高級的控制方式了作控制器的廠商大多都會或多等等或少的採取一些,至於是神經網路PID,模糊PID,自適應PID是如何實現的,我所知道的就是利用對應的控制演算法,適時的調節PID的參數。還是舉個例子吧。傳統PID的演算法公式是:
⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]
U(n)=⊿U(n)+U(n-1)
e(n) ,e(n-1), e(n-2)就是歷史上的三個設定值跟過程值之間的偏差了。
這是一個增量式的PID算式(如果有誰不明白什麼式增量是算式,呵呵,可能以後會提到,偶的寫作水平有限,不會組織內容,再說我是想到哪,寫道哪,呵呵,見涼)。
所謂的新型PID控制器,就是根據e(n)的不同,利用那些先進的控制規律來適當的調整Kp,Ki,Ke。至於怎麼調整,呵呵,這就太羅嗦了,也不是這篇內容所該介紹的,(關鍵是我也不太清楚,呵呵,見笑),需要這些功能的大俠應該是我的前輩,還請指教喲。
好了,現在正式介紹一下所謂的PID各個參數吧。
所謂的PID大家在大學期間都應該學過,就是比例(P)、積分(I)、微分(D)。
比例控制:就是對偏差進行控制,偏差一旦產生,控制器立即就發生作用即調節控制輸出,使被控量朝著減小偏差的方向變化,偏差減小的速度取決於比例系數Kp, Kp越大偏差減小的越快,但是很容易引起振盪,尤其是在遲滯環節比較大的情況下,Kp減小,發生振盪的可能性減小但是調節速度變慢。但單純的比例控制存在靜差不能消除的缺點。這里就需要積分控制。
積分控制:實質上就是對偏差累積進行控制,直至偏差為零。積分控製作用始終施加指向給定值的作用力,有利於消除靜差,其效果不僅與偏差大小有關,而且還與偏差持續的時間有關。簡單來說就是把偏差積累起來,一起算總帳。
微分控制:它能敏感出誤差的變化趨勢,可在誤差信號出現之前就起到修正誤差的作用,有利於提高輸出響應的快速性,減小被控量的超調和增加系統的穩定性。但微分作用很容易放大高頻雜訊,降低系統的信噪比,從而使系統抑制干擾的能力下降。因此,在實際應用中,應慎用微分控制,尤其是當你開始作實驗時,不防將微分控制項去掉,看看行不行,呵呵,不行啊?還是看看別的地方吧,肯定行的。
行了,這三個參數說明白了,再來說說怎麼確定這幾個參數的數值吧。這幾個參數的確定比較先進的方式是自整定,但是如果是開始涉及這部分還是先不要講了,按照經驗值吧。估計大家用來控制溫度比較多。大家按照這個規律來選吧。
Kp=100/P
Ki= kp*T/I
Kd= kp*D/T
分別介紹一下各個參數的意義:
T:計算周期,就是各多少時間計算一次
⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)],單位是秒。一般1秒或者0.5秒甚至5秒都行。
P:比例帶
I:積分時間
D:微分時間
P、I、D跟kp,ki,kd有什麼關系呢?
Kp=100/P,
Ki=kp*T/I
Kd=kp*D/T
然後就可以計算
⊿U(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]
算出來⊿U(n)之後再怎麼辦呢?怎麼把這一個數據跟控制輸出聯系在一起呢?說道這里我們先說說PID控制方式大體都有那些?
其一為線形連續PID輸出,也就是說,PID運算的結果以模擬電壓,電流或者可控硅導通角的形式按比例輸出。
其二為時間-比例PID輸出,也就是說,事先定一個時間長度,T1,然後PID運算的結果就在控制周期內以ON-OFF的形式輸出出來,比如你控制一個爐子的溫度,用電熱絲來加熱,就可以控制電熱絲的一個控制周期內通電占整個控制周期的比例來實現,電路上可以用繼電器或者過零觸發的方式來切斷或者接通電熱絲供電。
起三為位置比例PID,PID運算的結果主要是對應於調節閥的閥門開度。

再回到前面,我們以第二種控制方式為例,計算出⊿U(n)後,一般首先將其歸一化,也就是說除以你所要控制的溫度的量程。
⊿U(n)0_1=⊿U(n)/(hh-ll)
而時間比例PID輸出對應的是「位置式PID運算」的結果
所以呢,我們要講結果累積起來,
U(n)0_1+=⊿U(n)0_1
然後將次結果換算成對應於控制周期的占空比。來輸出

===========================================================================================

PID控制的原理和特點

閱讀全文

與Pc28穩定演算法相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:579
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:426
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:350