搜尋
首頁常見問題一個遞歸演算法必須包括什麼

一個遞歸演算法必須包括什麼

Dec 11, 2019 am 10:51 AM
演算法

遞歸演算法(英文:recursion algorithm)在電腦科學中是指一種透過重複將問題分解為同類的子問題而解決問題的方法。

一個遞歸演算法必須包括什麼

遞歸式方法可以用來解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。

絕大多數程式語言支援函數的自調用,在這些語言中函數可以透過調用自身來進行遞歸。 (推薦學習:web前端影片教學

計算理論可以證明遞歸的作用可以完全取代循環,因此在許多函數程式語言(如Scheme)中習慣用遞歸來實現循環。

遞迴程式

在支援自呼叫的程式語言中,遞歸可以透過簡單的函數呼叫來完成,如計算階乘的程式在數學上可以定義為:

一個遞歸演算法必須包括什麼

這程式在Scheme語言中可以寫:

(define (factorial n)  (if (= n 0)      1      (* n (factorial (- n 1)))))<br/>

不動點組合子

即使一個編程語言不支援自調用,如果在這語言中函數是第一類物件(即可以在運行期創建並作為變數處理),則遞歸可以透過不動點組合子(英語:Fixed-point combinator)來產生。

以下Scheme程式沒有用到自調用,但利用了一個叫做Z 算子(英文:Z combinator)的不動點組合子,因此同樣能達到遞歸的目的。

(define Z  (lambda (f)    ((lambda (recur) (f (lambda arg (apply (recur recur) arg))))     (lambda (recur) (f (lambda arg (apply (recur recur) arg)))))))(define fact  (Z (lambda (f)       (lambda (n)         (if (<= n 0)             1             (* n (f (- n 1))))))))<br/>

以上是一個遞歸演算法必須包括什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)