為啥演算法是有限的,而程式可以是無限的?懂的來

2022-08-12 11:50:25 字數 5760 閱讀 4680

1樓:小小

首先一款程式是由n個演算法集合而成,用整體某個架構作為框架,框架內整合n個演算法最終打包成一個程式。

而演算法只是一些指令,是指對解決問題方案的一個描述。用系統的方法描述解決問題的機制。

任何一個程式,都是n多個演算法迴圈而成,每一個演算法都負責單獨其中的一個操作指令,通俗的解釋為:一輛汽車,郵箱燒油才能讓汽車有動力,汽車才會行走,假設理論上你郵箱油是無線充足的,那麼汽車可以永遠跑下去。 但是汽車必須定期要加油。

同樣,程式可以無線迴圈執行下去,只要伺服器正常執行,執行完畢後可以通過某些觸發器繼續讓程式按照人需要的方面去無限執行下去,但是裡面可能涉及到核心演算法,迴圈演算法等等,通過這些演算法結合在一起才能讓程式迴圈執行。

就好比世上永遠不會有永動機,同樣,演算法是核心基礎,程式是最終結果。要想程式無限執行,必須每個演算法各司其職按部就班執行。

2樓:天賜丶淡雅香

你這是什麼方面的問題,程式設計? 演算法也是人慢慢總結出來的規律,你要是牛b可以自創一套演算法,怎麼可能是有限的。就好像說本來沒有路,走的人多了就有路了。

為什麼演算法的有窮性是指演算法程式的執行時間是有限的。而不是演算法程式所處理的資料量是有限的。 如果

3樓:匿名使用者

計算機是實用科學,資料量怎麼可能是無窮的?演算法說白了就是對輸入進行處理然後輸出結果,因此輸入一定的資料(哪怕再大但也不會是無窮的),演算法必須要在一定時間內產生輸出,而不是無限制的執行下去,這是演算法的有窮性。

一個演算法它所包含的步驟是無限的對不對?

4樓:鈺瀟

不對,所包含的步驟是無限的演算法是無法完成的,所以是錯的。一個演算法應該具有以下五個重要的特徵:

1、有窮性

演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;

2、確切性

演算法的每一步驟必須有確切的定義;

3、輸入項

一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;

4、輸出項

一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;

5、可行性

演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。

5樓:

一個演算法應該具有以下五個重要的特徵:

有窮性:演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;

確切性:演算法的每一步驟必須有確切的定義;

輸入項:一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;

輸出項:一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;

可行性:演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。

所以是錯的

演算法與程式的區別與聯絡

6樓:旅者一生

演算法和程式的區別是:

(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 。

演算法與程式的聯絡 :

演算法和程式都是指令的有限序列 ,但是程式是演算法,而演算法不一定是 程式。程式 = 資料結構 + 演算法。演算法的主要目的在於為人們提供閱讀了解所執行的工作流程與步驟。

資料結構與演算法要通過程式的實現,才能由計算機系統來執行。可以這樣理解,資料結構和演算法形成了可執行的程式。

擴充套件資料

演算法的要素:

一、資料物件的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:

1、算術運算:加減乘除等運算。

2、邏輯運算:或、且、非等運算。

3、關係運算:大於、小於、等於、不等於等運算。

4、資料傳輸:輸入、輸出、賦值等運算。

二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。

7樓:門下走狗金牛

一,區別:

1,在語言描述上,程式必須是用規定的程式設計語言來寫,而演算法很隨意;

2,在執行時間上,演算法所描述的步驟一定是有限的,而程式可以無限地執行下去。

二,聯絡:

演算法+資料結構=應用程式。

演算法是程式設計的核心,演算法的好壞很大程度上決定了一個程式的效率。一個好的演算法可以降低程式執行的時間複雜度和空間複雜度。先選出一個好的演算法,再配合以一種適宜的資料結構,這樣程式的效率會大大提高。

擴充套件資料:

程式演算法特性

1,有窮性

在有限的操作步驟內完成。有窮性是演算法的重要特性,任何一個問題的解決不論其採取什麼樣的演算法,其終歸是要把問題解決好。如果一種演算法的執行時間是無限的,或在期望的時間內沒有完成,那麼這種演算法就是無用和徒勞的,我們不能稱其為演算法。

2,確定性

每個步驟確定,步驟的結果確定。演算法中的每一個步驟其目的應該是明確的,對問題的解決是有貢獻的。如果採取了一系列步驟而問題沒有得到徹底的解決,也就達不到目的,則該步驟是無意義的。

3,可行性

每個步驟有效執行,得到確定的結果。每一個具體步驟在通過計算機實現時應能夠使計算機完成,如果這一步驟在計算機上無法實現,也就達不到預期的目的,那麼這一步驟是不完善的和不正確的,是不可行的。

4,零個或多個輸入

從外界獲得資訊。演算法的過程可以無資料輸入,也可以有多種型別的多個資料輸入,需根據具體的問題加以分析。

5,一個或多個輸出

演算法得到的結果就是演算法的輸出(不一定就是列印輸出)。演算法的目的是為解決一個具體問題,一旦問題得以解決,就說明採取的演算法是正確的,而結果的輸出正是驗證這一目的的最好方式。

8樓:米粒教育

主要討論程式與演算法,**程式與演算法之間的關係,通過案例揭示從提出問題、給出解決問題的演算法以及實現程式的過程

9樓:匿名使用者

演算法與程式:

(1).一個程式不一定滿足有窮性。例作業系統,只要整個系統不遭破壞,它將永遠不會停止,即使沒有作業需要處理,它仍處於動態等待中。因此,作業系統不是一個演算法。

(2).程式中的指令必須是機器可執行的,而演算法中的指令則無此限制。

(3).演算法代表了對問題的解,而程式則是演算法在計算機上的特定的實現。一個演算法若用程式設計語言來描述,則它就是一個程式.

10樓:安徽新華電腦專修學院

演算法只是程式中可以處理的其中一件事.

11樓:匿名使用者

用c 語言或pascal語言等高階語言來描述也不能算是程式,有的也用這些不十分嚴格的編寫來完成演算法,程式是要能執行,各種初始化工作都要做的,而演算法不管那麼多.比如做程式裡面含有這個類或者結構,一旦某個地方描述過了,以後的演算法中就當已經宣告瞭. 很多教材裡就是這樣做的..

12樓:

演算法就是"計算方法"

而程式設計就是用一種語言來完成這個"計算方法".

13樓:自在天生

演算法代表了對問題的解,而程式則是演算法在計算機上的特定的實現。一個演算法若用程式設計語言來描述,則它就是一個程式-----經典!

下列關於演算法的說法中,正確的是(  )a.演算法是某個問題的解決過程b.演算法可以無限不停地操作下去c.

14樓:丸子無敵帥

由演算法的概念可知:

演算法是某個問題的解決方法,而不是某個問題的解決過程,故a不正確;

演算法是在有限個步驟內解決問題,不可以無限不停地操作下去,故b不正確;

演算法的每一步操作都是明確的,演算法執行後的結果是確定的,故c不正確;

解決某類問題的演算法可能有多個,演算法是不唯一的,故d正確.故選d.

我的思考能力是有限的,而生活中可能出現的問題是無限的。 10

15樓:鎦浪影視

兵來將擋,水來土上。一個人的能力都是有限的,不可能做到應對無限性,只能見招拆招。最好的方法就是揚長避短,做自己善長的。

這是想多了,比如人的生命是有限的,難道你要去解決這問題?

16樓:

我的思考能力是有限的,而生活中可能出現的問題是無限的。能力是鍛煉出來的,不斷學習,充實自己,才能應對幹變萬化的問題,解決生活遇到的不用問題。

17樓:匿名使用者

你得有錢!你用你有限的能力,解決了錢的問題,那麼,基本上生活人生中99%遇到的問題便全都能解決了。所以不要想太多,實現小目標是關鍵。

18樓:暨欣愉

說的很對,什麼叫過日子,過日子就是過事情,天天都沒有事情沒有思想,人生還有什麼意義,聽你這語氣是不是生活中遇到什麼事情了,感覺你有點悲觀的感覺,不管怎麼樣日子也要一天天的過,只要過好每一天就好,因為你永遠不知道明天會發生什麼事情。

19樓:

這個問題很難因為人都不可能預知未來,只能是走一步看一步,在自己的能力範圍內認真的把它做好。對生活懷著積極的態度,樂觀向上不忘初心。

20樓:

沒錯,人的精力和時間,生命都是有限的,所以我們必須在這有限的時間內好好的,快樂的生活,努力的工作,開心的度過一生。所以不要去想那麼多人,俗話說,有所得就有所思,平時要懂懂得捨去不是自己的,不要強求。

21樓:昆吾映秋

世上的事情是千邊萬華的你是不可能應付過來的 但是你要想辦法去應對木有客服不了的問題

22樓:讓肚子不像將軍

你說的事情是對的,世上萬事千變萬化,你不可能知道你會遇到什麼樣的事情。

如何用你有限的能力去應對隨時可能出現的問題?首先,要勤學苦練,積累經驗,增加知識,增長見識,自然你就會學會更多的解決問題的能力。

第二,要勤于思考,不斷總結經驗教訓,充分挖掘發揮自己的潛力。

23樓:hi一路陽光

人算不如天算!所以不可能預防一切未知危險。我們人類擁有的器官已經適應了這個世界,它們不需要你去指揮,會主動向你反饋危險訊號,並採取緊急應急動作的!

所以你什麼都不用做,躺著睡大覺就ok了!

24樓:匿名使用者

首先來說精力有限,你不可能做到面面俱到。生活當中事情雖然很多,但你也不可能,一天之內遇見全部的事情是一步一步發生要一步一步解決。

1.所以建議你一個人只要把生活當中的事做好,其他的工作當中能做好,其他的應該沒有什麼了。

2.想做面面俱到的能手,太難了,精力有限。

求逆矩陣的演算法,最好是c 的程式

到底應該怎麼樣去求逆矩陣才好呢?include define m 3 define n 2 m int main double result m m double b m n cout 請輸入矩陣的值 預設大小為3 3的矩陣 a i j b i j a i j for i 0 i i j for k...

以下關於演算法的說法正確的是A描述演算法可以有不同的方式,可用形式語言也可用其它語言B演算法可

由演算法的概念bai 可知 求解du某一類問題的算zhi法不是唯一的,故daoa正確 演算法可專以看成屬按照要求設計好的有限的確切的計算序列,並且這樣的步驟或序列能解決一類問題,故b不正確 演算法是有限步,結果明確性,c是不正確的 演算法的每一步操作必須是明確的,不能有歧義或模糊是正確的,故d不正確...

舉例說明是如何理解演算法是程式的靈魂,是計算機的靈魂,是計算思

別的不說,推薦你看一本書 演算法導論 機械工業出版社,t.t。我也在糾結這道題。高手請進舉例說明是如何理解演算法是程式的靈魂,是計算機的靈魂,是計算思維的靈魂.一個程式的執行全部由電腦的cpu處理,高階且合理的程式演算法,不僅是體現一個程式設計師程式設計水平的高低,也能縮短程式開發時間,提高程式執行...