演算法沒有
㈠ 為什演算法必須要有輸出有時候卻可以沒有輸入
如果是比較狹義的輸入和輸出,那麼演算法其實可以沒有輸出,不要太迷信教材
比如說,可以寫一個確定的演算法,做很多無用功而且並不輸出,演算法的目的只是為了讓計算機發熱,也沒毛病
㈡ 如何證明LRU頁面置換演算法沒有Belady現象
LRU一般都有棧的特性,一個N+1大小的cache很自然的就包含了大小為N的cache的內容。所以隨著cache大小增加,hit rate要麼不變,要麼提高。
㈢ 演算法必須有輸入和輸出嗎
演算法可以沒有輸入但是必須要用輸出。也可以沒有輸入也可以沒有輸出,例如:求1到10的累加和,並不要求輸出。
#include<stdio.h>
intmain(){
inti,sum=0;
for(i=1;i<=10;i++)
sum+=i;//printf("%d ",sum);
return0;}
程序可以正確編譯並運行,但是並不知道1到10的累加和是多少。如果C語言沒有輸出,演算法再優秀也是無用功,不能解決問題,所以C語言就有規定至少要有一個或者多個輸出,即必須要有輸出。
(3)演算法沒有擴展閱讀
計算機演算法有五個重要特性,就是有窮性、確定性、可行性、輸入和輸入。
1、有窮性: 一個演算法必須保證執行有限步之後結束;
2、確切性: 演算法的每一步驟必須有確切的定義;
3、輸入:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定除了初始條件;
4、輸出:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的演算法是毫無意義的;
5、可行性: 演算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算後即可完成。
㈣ 演算法與程序的區別與聯系
演算法和程序的區別是:
(1) 兩者定義不同。演算法是對特定問題求解步驟的描述,它是有限序列指令。而程序是實現預期目的而進行操作的一系列語句和指令。
說通俗一些演算法是解決一個問題的思路,程序,是解決這些問題所具體好寫的代碼。演算法沒有語言界限。他只是一個思路。為實現相同的一個演算法,用不同語言編寫的程序會不一樣。
(2)兩者的書寫規定不同。程序必須用規定的程序設計語言來寫,而演算法很隨意。演算法是一系列解決問題的清晰指令,也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。演算法常常含有重復的步驟和一些邏輯判斷。
簡單演算法舉例 例:求 1*2*3*4*5
步驟 1 :先求 1*2 ,得到結果 2 。
步驟 2 :將步驟 1 得到的乘積 2 再乘以 3 ,得到結果 6 。
步驟 3 :將步驟 2 得到的乘積 6 再乘以 4 ,得到結果 24 。
步驟 4 :將步驟 3 得到的乘積 24 再乘以 5 ,得到最後結果 120 。
演算法與程序的聯系 :
演算法和程序都是指令的有限序列 ,但是程序是演算法,而演算法不一定是 程序。程序 = 數據結構 + 演算法。演算法的主要目的在於為人們提供閱讀了解所執行的工作流程與步驟。數據結構與演算法要通過程序的實現,才能由計算機系統來執行。可以這樣理解,數據結構和演算法形成了可執行的程序。
(4)演算法沒有擴展閱讀
演算法的要素:
一、數據對象的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:
1、算術運算:加減乘除等運算。
2、邏輯運算:或、且、非等運算。
3、關系運算:大於、小於、等於、不等於等運算。
4、數據傳輸:輸入、輸出、賦值等運算。
二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。
㈤ 為什麼「用C程序實現的演算法可以沒有輸入,但必須要有輸出」
沒有輸出,不知道計算的結果那演算法就沒有意義了。輸出不一定是要列印到屏幕上的,可以是下一個程序的輸入,可以是一個文件、一段語音、一張圖像,甚至是機器人的步行動作等等。