Recursion

From TCS Wiki
Revision as of 20:47, 14 February 2017 by imported>Kobes~enwiki (Made description simpler and clearer. Refer to "cases" instead of "different definitions". Emphasize reduction of problem space. Define "base case". Remove obscure detail on recursively enumerable sets. Mention applications in proof, art, language.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
File:Droste.jpg
A visual form of recursion is the Droste effect. It leads to self-similar images.

Recursion is a word from mathematics and computer science. It is used to define a thing, such as a function or a set. A recursive definition uses the thing it is defining as part of the definition.

Description

Usually, a recursive function refers to itself in some cases (or inputs), but not in every case. A function that referred to itself in every case would never terminate.

When a function refers to itself, it often uses a smaller input than the input it was given. In this way, it can solve a problem by first solving a simpler version of the problem.

Example

An example of a recursive function [math]\displaystyle{ f(n) }[/math] is:

  • If [math]\displaystyle{ n \gt 0 }[/math] then return [math]\displaystyle{ n \times f(n-1) }[/math].
  • If [math]\displaystyle{ n = 0 }[/math] then return [math]\displaystyle{ 1 }[/math].

This function computes the factorial of a natural number. It works because [math]\displaystyle{ n!=n(n-1)!, n \gt 0 }[/math] and [math]\displaystyle{ 0!=1 }[/math].

The definition has two cases: a recursive case for [math]\displaystyle{ n\gt 0 }[/math], and a case for [math]\displaystyle{ n=0 }[/math] that is not recursive. The case that is not recursive is called a "base case".

Uses

Recursion can be used to write computer programs. A program that uses recursion may be easier to write and understand than a program that does the same thing without recursion.

Recursion is used in mathematics to prove theorems. This method is called induction.

The idea of recursion can be seen in art and language. For example:

  • A fractal image contains smaller versions of itself.
  • In the rules of grammar, a sentence can be part of another sentence.

Template:Math-stub