遞推法的一般步驟 迭代和遞推算法有什么區(qū)別???
迭代和遞推算法有什么區(qū)別啊?遞歸:UN=UN-1*2迭代:y=x*2x=y如果用這兩個公式編程,遞歸將使用遞歸函數(shù)或生成長度為N的數(shù)組,但如果是迭代,則只使用while或for循環(huán),并且只使用兩個變量
迭代和遞推算法有什么區(qū)別???
遞歸:UN=UN-1*2迭代:y=x*2x=y如果用這兩個公式編程,遞歸將使用遞歸函數(shù)或生成長度為N的數(shù)組,但如果是迭代,則只使用while或for循環(huán),并且只使用兩個變量。該程序的效率高于遞歸算法。這應(yīng)該是因為迭代法是在遞歸法的基礎(chǔ)上進(jìn)一步分析,才能得到便于編程的公式。迭代算法是計算機求解問題的基本方法。它利用計算機運算速度快、適于重復(fù)操作的特點,使計算機能夠重復(fù)執(zhí)行一組指令(或某些步驟)。每次執(zhí)行指令組(或這些步驟)時,都會從變量的原始值派生一個新值。利用迭代算法求解問題,需要做以下三個方面的工作:第一,確定迭代變量。在可以用迭代算法求解的問題中,至少有一個變量直接或間接地從舊值中遞歸出新值。這個變量叫做迭代變量。第二,建立迭代關(guān)系。所謂迭代關(guān)系,是指如何從變量的上一個值推導(dǎo)出下一個值的公式(或關(guān)系)。迭代關(guān)系的建立是解決迭代問題的關(guān)鍵,通??梢酝ㄟ^遞歸或反推來完成。第三,控制迭代過程。什么時候結(jié)束迭代過程?這是編寫迭代程序時必須考慮的問題。你不能讓迭代無休止地進(jìn)行下去。迭代過程的控制可以分為兩種情況:一種是所需迭代次數(shù)是某個值,可以計算出來;另一種是所需迭代次數(shù)不能確定。對于前一種情況,我們可以建立一個固定數(shù)量的循環(huán)來控制迭代過程。對于后一種情況,我們需要進(jìn)一步分析終止迭代過程的條件。