Mit Hilfe der folgenden PHP-Funktionen können einzelne Zahlen der Fibonacci-Folge berechnet werden. Der Quelltext sollte selbsterklärend sein. Wer Interesse hat, kann den nachfolgenden Quelltext gerne unter Berücksichtigung der GNU AGPL weiterverwenden und/oder erweitern.
<?php
/**
* Diese Funktion gibt die n-te Zahl der Fibonacci-Folge zurück. Die
* Fibonacci-Folge ist dabei wie folgt definiert:
*
* f(n) = f(n-1) + f(n-2) | n > 2
*
* Beispiele (Definition):
*
* f(0) = 0
* f(1) = 1
* f(2) = 1
* f(3) = 2
* f(4) = 3
* f(5) = 5
* f(6) = 8
* f(7) = 13
* f(8) = 21
*
* Beispiel (Funktion):
*
* fibonacci(4)
*
* Rückgabe (Funktion):
*
* 3
*
* Im Falle eines Fehlers gibt die Funktion "false" zurück.
*
* @access public
* @param int $n
* @return mixed
*/
function fibonacci($n) {
if (is_int($n) && $n >= 0) {
return ($n < 2) ? $n : fibonacci($n - 1) + fibonacci($n - 2);
}
return false;
}
/**
* Diese Funktion gibt die Zahlen der Fibonacci-Folge innerhalb der angegebenen
* Unter- und Obergrenze als Array zurück. Standardmässig liegt die Untergrenze
* bei 0 (null) und die Obergrenze bei 10 (zehn). Die Indizes des zurückgegebenen
* Arrays entsprechen dabei den Positionen in der Fibonacci-Folge.
*
* Beispiel:
*
* fibonacci_list(4, 8)
*
* Rückgabe:
*
* Array
* (
* [4] => 3
* [5] => 5
* [6] => 8
* [7] => 13
* [8] => 21
* )
*
* Im Falle eines Fehlers gibt die Funktion "false" zurück.
*
* @see fibonacci()
*
* @access public
* @param int $min
* @param int $max
* @return mixed
*/
function fibonacci_list($min = 0, $max = 10) {
if (is_int($min) && is_int($max) && $min >= 0 && $min < $max) {
$result = array();
for ($i = $min; $i <= $max; $i++) {
$result[$i] = fibonacci($i);
}
return $result;
}
return false;
}
?>