遞歸定義
遞歸定義是數理邏輯和計算機科學用到的一種定義方式,使用被定義對象的自身來為其下定義(簡單說就是自我複製的定義)。遞歸定義與歸納定義類似,但也有不同之處。遞歸定義中使用被定義對象自身來定義,而歸納定義是使用被定義對象的已經定義的部分來定義尚未定義的部分。不過,使用遞歸定義的函數或集合,它們的性質可以用數學歸納法,通過遞歸定義的內容來證明。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/KochFlake.svg/220px-KochFlake.svg.png)
定義方式
編輯大部分的遞歸定義都由三個部分構成:基本情況的定義,遞歸法則和遞歸結束的情況。如果定義的對象是無限的,那麼可以省略第三個部分(遞歸結束的情況)。比如說,可以用遞歸定義的方式來定義如下的一個自然數集上的函數 :
這個定義在邏輯上是成立的,因為它首先定義了 在最小的自然數0上的取值,接下來對每個大於零的自然數 ,只要重複有限多次定義的過程,最終就會回到對0的定義上。這樣定義出的函數 就是階乘函數。
遞歸定義和循環定義的不同之處在於,後者不包括對基本情況的定義。比如定義建立在整數集上的函數 :
則我們永遠無法確定 的取值,這便是循環定義。
參考
編輯- P. Aczel (1977), "An introduction to inductive definitions", Handbook of Mathematical Logic, J. Barwise (ed.), ISBN 0-444-86388-5
- James L. Hein (2009), Discrete Structures, Logic, and Computability. ISBN 0-7637-7206-2