更新時間:2022-08-09 10:13:29 來源:動力節點 瀏覽1548次
遞歸 是一種巧妙而巧妙的構造,它允許函數調用自身。Matlab 編程語言支持它,因此函數可以在自己的執行過程中調用自己。Java遞歸方法可以直接在 Matlab 中實現。
這是一個簡單的遞歸示例,我們來詳細說明.
遞歸代碼示例:
function y = ten_exp(n)
% 這是一個計算 y = 10^n 的遞歸程序。
% 該程序僅在 n 為非負整數時才有效。
% 如果 n 為負數,算法不會停止。
if n == 0
y = 1
else
n %<< 此行不需要,但用于檢查
y = 10 * ten_exp(n-1)
end
在這些語句中(故意)避免使用分號,以查看不同級別的遞歸中的值更新。您可以通過在編輯器中運行分步功能來探索代碼。
此代碼具有使用分支的構造。比較 n == 0 是遞歸的基礎,因為它定義了最后一步或最低級別。這是讓程序停止調用自身的唯一方法。
分支中的“ else ”部分是遞歸的關鍵。訣竅是它調用了一個較低的值 (n - 1),并且它將繼續這樣做,直到它下降到 n = 0。
使用這種自調用技術時有幾個注意事項:
第一個是函數可能永遠調用自己并且永遠不會返回答案。如果我們輸入一個否定的參數,就會在上面的代碼中發生這種情況。
第二個是遞歸會導致冗余計算,這可能很耗時。上面的代碼一次又一次地使用可以使用單行代碼 (10^n) 執行的指令。
第三個考慮是它需要更多的內存分配。在大型系統的計算中,不應將內存空間浪費在程序開銷上。
另一方面,遞歸程序比非遞歸程序更容易編寫和閱讀。
現在,我們將再次使用這種技術編寫一個函數來計算階乘 (n!)。我們知道這不是計算階乘數的最有效方法,但它在概念上是一種易于測試和實現的遞歸計算.
function y = fact(n)
% 我們有最大的數
y = n
%如果n == 0
y = 1則 我們下降到 0
否則% 我們乘以前面的所有整數,% 一次一個... y = y * fact(n-1) end
同樣,這些是此示例的注意事項:
該函數可能會永遠調用自己并且永遠不會返回答案。如果我們輸入一個否定的參數,就會在上面的代碼中發生這種情況。
有可能是耗時的冗余計算。上面的代碼一次又一次地使用可以使用單個內置函數(factorial(n))執行的指令。
以上就是關于“matlab遞歸調用的例子”介紹,大家如果對此比較感興趣,想了解更多相關知識,可以關注一下動力節點的Java教程,里面有更豐富的知識等著大家去學習,相信對大家一定會有所幫助的。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習