演算法現有
靜態圖像壓縮最常用的是jpeg, 先進點的是jpeg2000。研究這兩個就足夠了。
動態視頻的演算法就太多了,VCD用mpeg-1, DVD用mpeg-2, 視頻會議常用H.261。壓縮比更高一些的是H.263和mpeg-4,最新一代的演算法是H.264和微軟的WMV9,用於新一代HD-DVD及藍光光碟上。
2. 根據二十四點演算法,現有3,4,-6,-10,每個數用且只用一次進行加減乘除運算,使其結果等於24.
-(-10)-3*(-6)-4=24
-(-10+4)*3-(-6)=24
3. 演算法研究現狀
Farmer以及Deutsch和Journel雖然在1992年就提出了多點地質統計學方法,但其主要是通過在模擬退火中加入多點統計目標函數,然後對模擬圖像進行反復迭代達到與輸入統計參數匹配。該演算法受到數據樣板大小、模擬類型值多少的影響,此外迭代收斂也是一個不可避免的問題。受計算機性能以及演算法的雙重影響,模擬速度極其緩慢。因此對該方法的應用報道很少。1993年,Guardiano et al.提出了一種非迭代演算法。它並不通過變差函數及克里金建立條件概率分布,而是直接利用數據樣板掃描訓練圖像,並根據數據樣板掃描獲得的不同數據事件出現頻率,代替數據事件的多點統計概率。即對於每一個未取樣點,通過局部條件數據構成的數據事件,掃描訓練圖像推斷局部數據事件聯合未知點的條件概率(cpdf)。該方法屬於序貫模擬的范疇,但由於每次條件概率的推斷都需要重復掃描訓練圖像,對計算機性能要求相當高,因而該方法也一直停留在實驗室階段。
多點地質統計學得到快速發展,是源於搜索樹概念的提出,即一種存儲數據事件概率的數據結構。Strebelle(2000)對Guardiano et al.的演算法進行了改進,提出將掃描訓練圖像獲得的多點概率保存在「搜索樹」里,隨後的模擬採用序貫模擬的思路。在每模擬一個未知節點時,條件概率直接從「搜索樹」里讀取,大大縮短了運算機時,使得多點統計學儲層建模真正意義上的推廣成為可能。Strebelle將此演算法命名為Snesim(Singlenormal equation simulation)。Snesim演算法推出後,立刻受到建模界的關注,成為近幾年儲層建模熱點。通過實際研究區建模,有些學者指出Snesim尚存在一些缺陷,表現在以下幾個方面:
1)訓練圖像的平穩性問題。如何將實際儲層中的大量非平穩信息表現為訓練圖像並能應用多點統計方法進行建模;
2)集成軟數據(如地震)及評估訓練圖像或軟數據的權重問題,尤其是它們在某種程度上不一致時;
3)儲層形態合理再現問題。在現有演算法中,當數據事件稀少時,往往通過去除最遠條件節點方法來獲得可靠的數據事件,而這種處理方法往往會導致儲層構型再現失敗;此外,訓練圖像過小將導致目標不連續,影響建模真實性;而訓練圖像過大則導致運行機時大,Snesim的實施存在困難;
4)多重網格搜索問題。兩點統計學的多重網格搜索方法,不能改變粗網格模擬值,而條件數據重新分配具有相當大的誤差,導致實際地質結構特徵再現效果較差;
5)由於多點地質統計學仍然是基於像元的演算法,所以只能在一定程度上重現目標的形狀,對於更復雜的如尖角或者U型目標的應用則效果較差。
對於Snesim存在的問題,不同學者通過研究提出了各自的解決方案或建議。如非平穩性問題,Caers(2002)就採取類似於變差函數套合方式,通過伸縮和旋轉變換,將非平穩的地質模式變化為平穩的地質模式,隨後採用Snesim進行建模。再如數據樣板再現,Liu(2003)就通過賦予不同節點不同權重,在數據事件稀少時,舍棄權重最小數據點以獲得可靠的數據事件,而不是Snesim中去除最遠條件節點的方式;Stien(2007)則允許刪除條件數據點的值,而不是把它從條件數據集中移去。當所有節點被模擬後,再對那些被刪掉值的點重新模擬。Suzuki(2007)提出了一種新的方法,即實時後處理方法(PRTT),其主要思想是在某一點上如果條件化失敗,不是去掉一些條件數據縮小數據模板,而是返回到上一步,對前面模擬的數據進行修改,以達到數據事件合理化。在儲層屬性及數據事件多時,Arpat(2003)、Zhang(2003)等提出聚類的思想對相似數據事件進行歸類,從而減少運行機時及不合理數據事件的出現概率。
儲層建模是對地下沉積儲層地質模式的再現。考慮到儲層建模過程,實質上是對地下儲層特徵沉積模式的重建過程。如果將各種地質模式看成是一幅圖像的構成單元,對儲層預測也就是圖像的重建過程。基於此思想,在2003年Stanford油藏預測中心舉行的會議上,Arpat提出了Simpat(Simulation with pattenrs)多點地質統計學隨機建模方法,即通過識別不同的地質模式,採用相似性判斷方法,在建模時再現這些地質模式。Simpat模擬流程採用的也是序貫模擬的思路。由於是對地質模式處理,而地質模式是通過空間多個點構成的數據事件反映的,因此,在模擬實現時以整個數據事件賦值或者數據事件的子集取代了單個模擬網格節點的賦值。也就是說,在模擬過程中,在對某個未知值的預測過程中,除了模擬節點處賦值外,用來預測節點處值的條件數據的值也會有變化。Arpat通過這種數據事件整體賦值,實現儲層地質模式再現。在數據事件選擇上,Arpat擯棄了傳統的概率推斷、蒙特卡羅抽樣的隨機建模方法,而是借鑒計算機視覺及數字圖像重建領域的知識,利用數據事件的相似性對數據事件進行選擇。Arpat對此方法進行了較詳細的論證,表明此方法能夠較好再現儲層結構特徵。在此基礎上,基於距離相似度的多點地質統計學(distance-based multiple point geostatistics)開始得到研究和發展(Suzuki et al.,2008;Scheidt et al.,2008;Honarkhah et al.,2010)。與傳統基於統計抽樣的模擬不同,基於距離相似度的方法直接計算數據事件的相似性,並用最相似的數據進行整體替換。
基於統計抽樣以及儲層模式分類的考慮,Zhang(2006)提出了Fitlersim(Filter-Based simulation)方法。他認為在訓練圖像中眾多儲層模式可以由幾個濾波函數進行描述,由濾波函數獲得儲層模式的統計得分,在此基礎上,進行儲層模式的聚類,達到降低儲層維數、提高運算效率的目的。此外,在聚類過程中考慮相似的儲層模式出現的頻率,使得儲層預測具有統計學的意義。Yin(2009)則從目標骨架提取出發,約束多點統計模式選擇,提出了基於儲層骨架的多點地質統計學方法。
4. 根據二十四點演算法,現有四個數1,2,3,4
根據題意得:(1+2+3)×4=6×4=24.
故答案為:(1+2+3)×4
5. 計算機的演算法具有哪些特性
計算機的演算法具有可行性,有窮性、輸入輸出、確定性。
計算機演算法特點
1.有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他視為有效演算法。
2. 確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。
3. 有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。
4. 有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。
5.有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。
拓展資料:
重要演算法
A*搜尋演算法
俗稱A星演算法。這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於游戲中的NPC的移動計算,或線上游戲的BOT的移動計算上。該演算法像Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發式的搜索。
Beam Search
束搜索(beam search)方法是解決優化問題的一種啟發式方法,它是在分枝定界方法基礎上發展起來的,它使用啟發式方法估計k個最好的路徑,僅從這k個路徑出發向下搜索,即每一層只有滿意的結點會被保留,其它的結點則被永久拋棄,從而比分枝定界法能大大節省運行時間。束搜索於20 世紀70年代中期首先被應用於人工智慧領域,1976 年Lowerre在其稱為HARPY的語音識別系統中第一次使用了束搜索方法。他的目標是並行地搜索幾個潛在的最優決策路徑以減少回溯,並快速地獲得一個解。
二分取中查找演算法
一種在有序數組中查找某一特定元素的搜索演算法。搜索過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結束;如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。這種搜索演算法每一次比較都使搜索范圍縮小一半。
Branch and bound
分支定界(branch and bound)演算法是一種在問題的解空間樹上搜索問題的解的方法。但與回溯演算法不同,分支定界演算法採用廣度優先或最小耗費優先的方法搜索解空間樹,並且,在分支定界演算法中,每一個活結點只有一次機會成為擴展結點。
數據壓縮
數據壓縮是通過減少計算機中所存儲數據或者通信傳播中數據的冗餘度,達到增大數據密度,最終使數據的存儲空間減少的技術。數據壓縮在文件存儲和分布式系統領域有著十分廣泛的應用。數據壓縮也代表著尺寸媒介容量的增大和網路帶寬的擴展。
Diffie–Hellman密鑰協商
Diffie–Hellman key exchange,簡稱「D–H」,是一種安全協議。它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰來加密通訊內容。
Dijkstra』s 演算法
迪科斯徹演算法(Dijkstra)是由荷蘭計算機科學家艾茲格·迪科斯徹(Edsger Wybe Dijkstra)發明的。演算法解決的是有向圖中單個源點到其他頂點的最短路徑問題。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市間開車行經的距離,迪科斯徹演算法可以用來找到兩個城市之間的最短路徑。
動態規劃
動態規劃是一種在數學和計算機科學中使用的,用於求解包含重疊子問題的最優化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態規劃的思想是多種演算法的基礎,被廣泛應用於計算機科學和工程領域。比較著名的應用實例有:求解最短路徑問題,背包問題,項目管理,網路流優化等。這里也有一篇文章說得比較詳細。
歐幾里得演算法
在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。輾轉相除法首次出現於歐幾里得的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現的《九章算術》。
最大期望(EM)演算法
在統計計算中,最大期望(EM)演算法是在概率(probabilistic)模型中尋找參數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。最大期望演算法經過兩個步驟交替進行計算,第一步是計算期望(E),利用對隱藏變數的現有估計值,計算其最大似然估計值;第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。M 步上找到的參數估計值被用於下一個 E 步計算中,這個過程不斷交替進行。
快速傅里葉變換(FFT)
快速傅里葉變換(Fast Fourier Transform,FFT),是離散傅里葉變換的快速演算法,也可用於計算離散傅里葉變換的逆變換。快速傅里葉變換有廣泛的應用,如數字信號處理、計算大整數乘法、求解偏微分方程等等。
哈希函數
HashFunction是一種從任何一種數據中創建小的數字「指紋」的方法。該函數將數據打亂混合,重新創建一個叫做散列值的指紋。散列值通常用來代表一個短的隨機字母和數字組成的字元串。好的散列函數在輸入域中很少出現散列沖突。在散列表和數據處理中,不抑制沖突來區別數據,會使得資料庫記錄更難找到。
堆排序
Heapsort是指利用堆積樹(堆)這種數據結構所設計的一種排序演算法。堆積樹是一個近似完全二叉樹的結構,並同時滿足堆積屬性:即子結點的鍵值或索引總是小於(或者大於)它的父結點。
歸並排序
Merge sort是建立在歸並操作上的一種有效的排序演算法。該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。
RANSAC 演算法
RANSAC 是」RANdom SAmpleConsensus」的縮寫。該演算法是用於從一組觀測數據中估計數學模型參數的迭代方法,由Fischler and Bolles在1981提出,它是一種非確定性演算法,因為它只能以一定的概率得到合理的結果,隨著迭代次數的增加,這種概率是增加的。該演算法的基本假設是觀測數據集中存在」inliers」(那些對模型參數估計起到支持作用的點)和」outliers」(不符合模型的點),並且這組觀測數據受到雜訊影響。RANSAC 假設給定一組」inliers」數據就能夠得到最優的符合這組點的模型。
RSA加密演演算法
這是一個公鑰加密演算法,也是世界上第一個適合用來做簽名的演算法。今天的RSA已經專利失效,其被廣泛地用於電子商務加密,大家都相信,只要密鑰足夠長,這個演算法就會是安全的。
並查集Union-find
並查集是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合並及查詢問題。常常在使用中以森林來表示。
Viterbi algorithm
尋找最可能的隱藏狀態序列(Finding most probable sequence of hidden states)。
參考資料:計算機演算法
6. 加密演算法除了,對稱加密演算法,非對稱加密演算法和hash演算法還有哪些
演算法,因為只要你有足夠的時間,完全可以用窮舉法來進行試探,如果說一個加密演算法是牢固的,一般就是指在現有的計算條件下,需要花費相當長的時間才能夠窮舉成功(比如100年)。一、主動攻擊和被動攻擊數據在傳輸過程中或者在日常的工作中,如果沒有密碼的保護,很容易造成文件的泄密,造成比較嚴重的後果。一般來說,攻擊分為主動攻擊和被動攻擊。被動攻擊指的是從傳輸信道上或者從磁碟介質上非法獲取了信息,造成了信息的泄密。主動攻擊則要嚴重的多,不但獲取了信息,而且還有可能對信息進行刪除,篡改,危害後果及其嚴重。 二、對稱加密基於密鑰的演算法通常分為對稱加密演算法和非對稱加密演算法(公鑰演算法)。對成加密演算法就是加密用的密鑰和解密用的密鑰是相等的。比如著名的愷撒密碼,其加密原理就是所有的字母向後移動三位,那麼3就是這個演算法的密鑰,向右循環移位就是加密的演算法。那麼解密的密鑰也是3,解密演算法就是向左循環移動3位。很顯而易見的是,這種演算法理解起來比較簡單,容易實現,加密速度快,但是對稱加密的安全性完全依賴於密鑰,如果密鑰丟失,那麼整個加密就完全不起作用了。比較著名的對稱加密演算法就是DES,其分組長度位64位,實際的密鑰長度為56位,還有8位的校驗碼。DES演算法由於其密鑰較短,隨著計算機速度的不斷提高,使其使用窮舉法進行破解成為可能。三、非對稱加密非對稱加密演算法的核心就是加密密鑰不等於解密密鑰,且無法從任意一個密鑰推導出另一個密鑰,這樣就大大加強了信息保護的力度,而且基於密鑰對的原理很容易的實現數字簽名和電子信封。比較典型的非對稱加密演算法是RSA演算法,它的數學原理是大素數的分解,密鑰是成對出現的,一個為公鑰,一個是私鑰。公鑰是公開的,可以用私鑰去解公鑰加密過的信息,也可以用公鑰去解私鑰加密過的信息。比如A向B發送信息,由於B的公鑰是公開的,那麼A用B的公鑰對信息進行加密,發送出去,因為只有B有對應的私鑰,所以信息只能為B所讀取。牢固的RSA演算法需要其密鑰長度為1024位,加解密的速度比較慢是它的弱點。另外一種比較典型的非對稱加密演算法是ECC演算法,基於的數學原理是橢圓曲線離散對數系統,這種演算法的標准我國尚未確定,但是其只需要192 bit 就可以實現牢固的加密。所以,應該是優於RSA演算法的。優越性:ECC > RSA > DES
7. java中的演算法,一共有多少種,哪幾種,怎麼分類。
就好比問,漢語中常用寫作方法有多少種,怎麼分類。
演算法按用途分,體現設計目的、有什麼特點
演算法按實現方式分,有遞歸、迭代、平行、序列、過程、確定、不確定等等
演算法按設計范型分,有分治、動態、貪心、線性、圖論、簡化等等
作為圖靈完備的語言,理論上」Java語言「可以實現所有演算法。
「Java的標准庫'中用了一些常用數據結構和相關演算法.
像apache common這樣的java庫中又提供了一些通用的演算法
8. 【演算法設計】現有△ABC,邊長分別為a,b,c,設計演算法判斷其是否為直角三角形
(1)演算法分析:直角三角形斜邊最長,要先找出三邊中最長的邊,判斷最長邊的平方是否等於其餘兩邊的平方和,若相等就是直角三角形。
(2)/*源程序如下:*/
#include <stdio.h>
void main()
{
int a,b,c,t;/* 三邊設為a,b,c,t是用於交換的中間變數 */
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
{
/* a中放a,b中較長邊 */
t=a;a=b;b=t;
}
if(a<c)
{
/* a中放a,b,c中的最長邊 */
t=a; a=c; c=t;
}
if(a*a==b*b+c*c)
printf("Y\n");
else
printf("N\n");
}
VC++6.0測試(輸入三個數,如是直角三角形輸出Y否則輸出N)
輸入:1 2 3
輸出:N
9. 運籌學有哪些演算法
圖像法,單純形法,對偶單純法,兩階段法。圖像法只能解一般的含兩個未知數的不等式。後3種是解多個未知數的不等式。運籌學還有整數規劃,一般有分支定界法,隱枚舉法,匈牙利法。運輸問題——一般為產銷問題,用最小元素法先做,再用位勢法調整目標規劃問題——先建模,再用單純形法解,一般現在用excel解決動態規劃——逆序法,順序法最小支撐樹圖——避圈法,破圈法最短路問題——dijkstra演算法
10. 根據24小時點演算法 現有四個數3 4 8 10 每個數只能使用一次,進行加、減、乘、除、
3, 4, 8, 10的24點答案:
1: 3 × (4 × (10 - 8))
2: 3 × 4 ×(10 - 8)
3: (3 × 4) × (10 - 8)
4: (3 × (10 - 8)) × 4
5: 3 × (10 - 8) × 4
6: 3 × ((10 - 8) × 4)
7: 3 × (10 - 8 ÷ 4)
8: 3 × (10 - (8 ÷ 4))
9: 4 ÷ 3 ×(8 + 10)
10: (4 ÷ 3) × (8 + 10)
11: 4 ÷ (3 ÷ (8 + 10))
12: 4 × (3 × (10 - 8))
13: 4 × 3 ×(10 - 8)
14: (4 × 3) × (10 - 8)
15: 4 ÷ 3 ×(10 + 8)
16: (4 ÷ 3) × (10 + 8)
17: 4 ÷ (3 ÷ (10 + 8))
18: (4 × (8 + 10)) ÷ 3
19: 4 × (8 + 10) ÷ 3
20: 4 × ((8 + 10) ÷ 3)
21: (4 × (10 + 8)) ÷ 3
22: 4 × (10 + 8) ÷ 3
23: 4 × ((10 + 8) ÷ 3)
24: (4 × (10 - 8)) × 3
25: 4 × (10 - 8) × 3
26: 4 × ((10 - 8) × 3)
27: (8 + 10) ÷ 3 × 4
28: ((8 + 10) ÷ 3) × 4
29: (8 + 10) ÷ (3 ÷ 4)
30: 8 × (10 - (3 + 4))
31: 8 × (10 - 3 - 4)
32: 8 × ((10 - 3) - 4)
33: (8 + 10) × 4 ÷ 3
34: ((8 + 10) × 4) ÷ 3
35: (8 + 10) × (4 ÷ 3)
36: 8 × (10 - (4 + 3))
37: 8 × (10 - 4 - 3)
38: 8 × ((10 - 4) - 3)
39: (10 - (3 + 4)) × 8
40: (10 - 3 - 4) × 8
41: ((10 - 3) - 4) × 8
42: (10 - (4 + 3)) × 8
43: (10 - 4 - 3) × 8
44: ((10 - 4) - 3) × 8
45: (10 + 8) ÷ 3 × 4
46: ((10 + 8) ÷ 3) × 4
47: (10 + 8) ÷ (3 ÷ 4)
48: (10 - 8) × 3 × 4
49: ((10 - 8) × 3) × 4
50: (10 - 8) × (3 × 4)
51: (10 + 8) × 4 ÷ 3
52: ((10 + 8) × 4) ÷ 3
53: (10 + 8) × (4 ÷ 3)
54: (10 - 8) × 4 × 3
55: ((10 - 8) × 4) × 3
56: (10 - 8) × (4 × 3)
57: (10 - 8 ÷ 4) × 3
58: (10 - (8 ÷ 4)) × 3