diff --git a/serie1/IT19ta_ZH7_S1_Aufg3.py b/serie1/IT19ta_ZH7_S1_Aufg3.py index e8b6c1f..3facced 100755 --- a/serie1/IT19ta_ZH7_S1_Aufg3.py +++ b/serie1/IT19ta_ZH7_S1_Aufg3.py @@ -1,4 +1,37 @@ #!/usr/bin/env python3 +import numpy as np +import timeit + + +def fact_rec(n): + # y = fact_rec(n) berechnet die Fakultät von n als + # fact_rec(n) = n * fact_rec(n - 1) mit fact_rec(0) = 1 + # Fehler, falls n <0 oder nicht ganzzahlig + if n < 0 or np.trunc(n) != n: + raise Exception('The factorial is defined only for positive integers') + if n <= 1: + return 1 + else: + return n*fact_rec(n-1) + + +def fact_for(n): + fak = 1 + for num in range(n): + fak *= n + n -= 1 + return fak + if __name__ == "__main__": - pass + t1 = timeit.repeat( + "fact_rec(500)", + "from __main__ import fact_rec", + number=100) + print(t1) + + t2 = timeit.repeat( + "fact_for(500)", + "from __main__ import fact_for", + number=100) + print(t2)