例:
所有遞迴演算法必須服從三個重要的定律:1. 遞迴演算法必須具有基本情況。
2. 遞迴演算法必須改變其狀態並向基本情況靠近。
3. 遞迴演算法必須以遞迴方式呼叫自身。
首先,基本情況是演算法停止遞迴的條件。基本情況通常是足夠小以直接求解的問題。在 listsum 演算法中,基本情況是長度為 1 的列表。
為了遵守第二定律,我們必須將演算法向基本情況的狀態改變。狀態的改變意味著該演算法正在
使用的一些資料被修改。通常,表示問題的資料在某種程度上變小。在 listsum 演算法中,我
們的主要資料結構是乙個列表,因此我們必須將我們的狀態轉換工作集中在列表上。因為基
本情況是長度 1 的列表,所以朝向基本情況的自然進展是縮短列表。
最後的法則是演算法必須呼叫自身。這是遞迴的定義。遞迴對於許多新手程式設計師來說是乙個混
亂的概念。作為乙個新手程式設計師,你已經知道函式是有益的,因為你可以將乙個大問題分解
成較小的問題。較小的問題可以通過編寫乙個函式來解決。我們用乙個函式解決問題,但該
函式通過呼叫自己解決問題!該邏輯不是迴圈;遞迴的邏輯是通過將問題分解成更小和更容易
的問題來解決的優雅表達。
Python遞迴 三定律
遞迴演算法必須有乙個基本結束條件 最小規模問題的直接解決 遞迴演算法必須能改變狀態向基本結束條件演進 減小問題規模 遞迴演算法必須呼叫自身 解決減小了規模的相同問題 def listsum mylist if len mylist 2 或 1 return mylist 0 mylist 1 els...
人際關係三定律
人之不同,一如其面。各種不同的人都有適合自己的交往方式和自己的交往原則,不論其本人是否能夠意識得到。所以,如果想找出一種放之四海而皆準的 和任何脾氣任何性格的人交往都適用的程式,就像劇本一樣,先說哪句話,後說哪句話,什麼話應該配什麼動作,什麼心情配什麼表情,這肯定是不現實的。但是,人與人之間的交往,...
人際關係三定律
人之不同,一如其面。各種不同的人都有適合自己的交往方式和自己的交往原則,不論其本人是否能夠意識得到。所以,如果想找出一種放之四海而皆準的 和任何脾氣任何性格的人交往都適用的程式,就像劇本一樣,先說哪句話,後說哪句話,什麼話應該配什麼動作,什麼心情配什麼表情,這肯定是不現實的。但是,人與人之間的交往,...