Sonntag, 20. Januar 2013

Fakultät

Die Fakultät einer Zahl ist „in der Mathematik eine Funktion, die einer natürlichen Zahl das Produkt aller natürlichen Zahlen kleiner und gleich dieser Zahl zuordnet“ (Wikipedia).

n n!
0 1
1 1
2 2
3 6
4 24
5 120
6 720
7 5.040
8 40.320
9 362.880
10 3.628.800


Das Ganze lässt sich rekursiv formulieren:
def fakultaet(x):
    if x > 1:
        return x * fakultaet(x - 1)
    else:
        return 1
Und auch iterativ:
def fakultaet(n):
    ''' Gibt die Fakultaet
    einer Zahl n zurueck

    '''

    if n <= 1:
        return 1
    else:
        for i in range(1,n):
            n *= i
        return n
Was ist performanter? Eigentlich würde ich erwarten, dass die rekursive Lösung weniger performant ist.

Keine Kommentare:

Kommentar veröffentlichen