演算法導論裡面的大師解法是什麼用大師解法計算下面遞迴表示式的

2021-03-26 12:22:36 字數 5084 閱讀 9640

1樓:琉璃蘿莎

#a i從0迴圈到n,演算法複雜

度為o(n)。

#b 一共要做n^2/2次加法,演算法複雜度為o(n^2)。

#c 要求一個k,滿足2^k>=n ,演算法複雜度為o(log(n))

#d 注意到這個函式做的事跟#c的函式恰好相反,演算法複雜度相同,也是o(log(n))

#e 因為已算出#g每次做3(n-3)次加法,那麼i從1到n,一共做2/3*(n^2-5n+6)次加法,所以複雜度為o(n^2)。

#f 這個函式可以寫成公式t(n)=t(n-2)+t(n-1),這個遞迴式跟**分割有關係,解這個遞迴式,可以知道 t(n) = o((√5-1/2)^n)

#g 函式呼叫一共做3(n-3)次加法,所以複雜度為o(n)

penitentsin 這位兄臺的#c 算的不對啦,#g也不對。還有#f,這個雖然是遞迴,但不是遞迴就等於指數級的複雜度,要解遞迴方程才能斷定的。

關於演算法複雜度,《演算法導論》一書中第四章有一個主定理,記住這個定理之後,這些問題就小case了(除了複雜遞迴之外)。

程式設計中的演算法是指什麼?

2樓:手機使用者

演算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟專。或者看成按照要求設計好屬的有限的確切的計算序列,並且這樣的步驟和序列可以解決一類問題。

比如你從b地到a地,有許多條路可以走,找出一條最短的路的方法就是一個演算法。

程式設計中解決一個問題同樣有很多不同方法,每個方法就是一個演算法。

演算法裡面總有一個最好的,效率最高的,能否做到用效率最高的方法來完成任務,就是一個程式設計師水平高低的表現之一。

演算法與程式設計有什麼關係?

3樓:查志強

演算法的定義

演算法(algorithm)是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。

不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。 一個演算法應該具有以下五個重要的特徵:

演算法可以使用自然語言、偽**、流程圖等多種不同的方法來描述。

1、有窮性(finiteness)

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

2、確切性(difiniteness)

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

3、輸入項(input)

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

4、輸出項(output)

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

5、可行性(effectiveness)

演算法中執行的任何計算步都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成。(也稱之為有效性) 電腦科學家尼克勞斯-沃思曾著過一本著名的書《資料結構十演算法= 程式》,可見演算法在電腦科學界與計算機應用界的地位。

程式設計就是讓計算機為解決某個問題而使用某種程式設計語言編寫程式**,並最終得到結果的過程。為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算機之間交流的過程就是程式設計。

作為程式設計師提高程式設計能力的幾個基礎演算法

硬體,軟體,演算法,程式設計的區別?

4樓:亂亂唱出

通俗來講,軟體是程式設計師對計算機系統編寫的程式,是計算機系統的上層。硬體,是複雜的電路系統,是計算機系統的底層。軟體工程師工作與程式設計有關,硬體工程師工作與電路設計、編碼等有關。

歷史上計算機的雛形早於軟體幾個世紀就出現了。

而電子計算機的問世離不開蘇格蘭數學家布林和現代資訊學之父美國人夏農。布林以其超凡的智慧發明了他的布林代數或者說布林邏輯,使代數脫離了數字的概念而變得更加抽象,布林代數中運算元不是數字,而是集(類),一個類僅僅代表一組事物,也就是後來熟知的集合。古希臘人認為,邏輯是追尋真理的過程中用於分析語言的一種手段,因此它被認為是一種哲學。

所以布林不僅使用數學的方法使邏輯從哲學中脫離出來,還為電子計算機的問世奠定了基礎。 只可惜,在19世紀沒有人把布林代數中的與、或和電路中的串聯、並聯開關聯絡起來,沒有人能意識到布林代數可以直接由電路實現。直到20世紀30年代才被發現,主要貢獻人是現代資訊學之父夏農,夏農在他著名的於2023年在麻省理工所寫的碩士**《a symbolic analysis of relay and switching circuits》中闡述了這個問題。

現代電子計算機所完成的加法運算減法運算等都是用邏輯器件所組成的電路完成的。計算機是運用二進位制數進行工作,二進位制數0和1在邏輯器件中的代表斷路和通路。

軟體的本質是對計算機系統(硬體)的程式設計,軟體一般都用高階語言進行程式設計,程式設計師編寫的程式由ide編譯、連結後用電燒錄到計算機系統的程式暫存器中,不過存放在程式暫存器中的是機器碼,一大堆01010111**。我這裡拿微控制器(微控制器)的工作原理舉例來說明之後是怎麼工作的。微控制器執行指令時,首先從程式儲存器中讀指令,送指令暫存器儲存,後送指令譯碼器譯碼,譯碼結果送定時控制邏輯電路,由定時器控制邏輯產生各種定時訊號和控制訊號,再送到微控制器的各個部件去進行相應操作。

執行程式就是不斷重複這一過程。

總之,我覺得計算機還是挺複雜的。

要想學好程式設計,是演算法重要還是程式語言重要

5樓:匿名使用者

呵呵,這個問題啊,你想想,如果你要開車去一個地方,是認識路重要,還是會開車重要呢?

都重要是不是。

演算法就是解決問題的思想,而程式語言是實現這個思想的工具。

只能說語言是需要熟練的,演算法是需要鑽研的。

6樓:

先至少學一門使用廣的程式語言,瞭解下程式設計時怎麼回事,然後最重要的當然是演算法——如果你不想做「碼農」的話。。

7樓:株洲別墅網

這個啊,演算法和程式設計思想都重要,沒有程式設計思想,脫離了書本就編寫不出**,沒有演算法,就等於沒有邏輯,也編寫不出好**

8樓:長沙新華電腦學院

程式語言有幾百種,選擇一門合適的入門語言就比較重要。在選擇的時候一方面要看這門語言的難易程度,另一方面還要看看所學的這門語言是否有前景。

可以看看這邊,畢竟網際網路it學校

學程式設計,什麼叫演算法 ?為什麼很多人說演算法很難

9樓:匿名使用者

其實說白了,演算法就是解決某種問題的方式,但也分好的演算法和差的演算法,而學習書本上的知識目的就是為了提升自己的思維方式,借鑑更多好的演算法,因為好的演算法可以提升程式的效能,提高開發效率,就拿最簡單的例子,玩猜數字遊戲,1-100裡面隨便選一個數字,然後讓你去猜它是多少,別人會告訴你這個數字大了還是小了,最直接的方式就是從1一直猜到100,但是也有更簡便的方式:就是類似二分法的方式從50開始猜,如果大了就猜1-50中的25,如果小了猜50-100中的75,以此類推,第一種從1-100猜數字是演算法,第二種二分法的方式也是演算法,只是第二種更好.........還有從1加到100,直接方式1+2+3....

一個一個的加,另一種方式(1+100)*50,這個就是著名的高斯演算法。

10樓:虛空道主

演算法(algorithm)是指解題方****而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制

演算法難是因為演算法要解決的問題都很複雜。

11樓:匿名使用者

可以說演算法是程式的核心,比如查詢演算法,可以讓計算機更快的找到指定的資料,雜湊可以應用於密碼學。當然了,演算法不僅僅這些,還有其它的,一些比較複雜的問題可以用演算法更容易更快解決。如果初學只學習理論的話,可能還不能在平時的程式設計中用不到較難的。

以上僅是個人學習看法

計算機程式設計的演算法是什麼意思

12樓:匿名使用者

平時說的演算法就是數學上的計算方法,計算機中的演算法是:解決問題的方法,不一定用數學方法(但大多都是數學方法),只要能通過計算機語言表達出來,達到最終目的的步驟都叫演算法

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

演算法就是解決問題的方法,就是達成目的一系列步驟。

14樓:匿名使用者

演算法簡單的說就是解決一個問題的具體方法比如我在家要去外面買一瓶飲料那麼演算法是(看具體情況而定)如果是我 步驟: 1.穿鞋子 2.

拿錢 3,走到商店 4.買一瓶飲料(更具體可分為拿飲料,付錢) 5,回到家 6.脫鞋這就是個演算法 這個演算法包含了6個步驟 類似的 當這些運用程式設計來解決的時候 就稱之為演算法 然後再用程式語言把 演算法表示成 計算機能執行的語言 就變成了一個解決問題的 程式 程式若大則可稱之為軟體了

15樓:匿名使用者

呵呵, 掃雷遊戲用的是遞迴演算法, 以下是兩個介紹。計算機演算法遞迴演算法:

請問演算法和程式設計的區別,最好能舉例?

16樓:沙裡波特

解決一個問題,有不同的解決方法。

這就是演算法。

比如:1 + 2 + 。。。100 = 5050。

顯然,有不同的演算法。

程式設計,是跟著演算法來的。

當然,同樣的演算法,也能寫出不同的程式結構。

這就是經驗的問題了。

17樓:路之舞者

演算法不就是程式設計的一部分嗎? 你編寫1+..100 程式,可以從1加到100,也可以1加100後再乘以50快速計算,或者還有別的方法,演算法就是你解決問題的方法啊!這個理解不了嗎?

程式設計就是用程式語言(語法)來把解決問題的方法表達出來!如果還不能理解,你就自己去學一門語言,實際體驗下什麼是程式設計,慢慢對比一下就能理解了。

如果還理解不了,乾脆就別掙扎了,連上帝都救不了你,我說的。

請問膝上型電腦裡面的顯示卡是什麼 是幹什麼用的

顯示卡作為電腦主機裡的一個重要組成部分,承擔輸出顯示圖形的任務,對於喜歡玩遊戲和從事專業圖形設計的人來說顯示卡非常重要。通俗點說就是你想玩些畫面質量很好的遊戲或者軟體的話就得有個好的顯示卡 不然就會很卡 電腦的顯示卡是用來幹什麼的有什麼功能和作用?顯示卡 video card,graphics ca...

流放之路天賦裡面的珠寶插槽有什麼用有必要點嗎

可以將珠寶鑲嵌到天賦裡的珠寶凹槽當中,珠寶可以通過打怪掉落,有白藍黃暗金四種 不掉落白的,但可以把藍的或者金的重鑄成白的 跟裝備一樣可以使用各種通貨去洗珠寶,重鑄石 蛻變石 改造石 富豪石 點金石 神聖石 崇高石 瓦爾寶珠等。一般來說4個詞綴的金珠寶和一些特殊作用的暗金珠寶都很實用,4詞綴都沒廢綴的...

紅警裡面的尤里複製中心做出來有什麼用

怎麼都是些胡說八道的人啊?不知道可以不說嘛 我來告訴你 複製中心是用來士兵一類的作戰單位的,不能複製戰車類作戰單位.簡單說來,當你造好複製中心之後,只要你兵營裡面出一個兵,複製中心也會複製同樣的一個士兵出來,一份錢造兩個人,且無形中加快了出兵速度.尤里 蘇軍 紅軍 陣營是沒有間諜的,不能做間諜所做的...