From 455769b152f6cd3580632dcaeae36aab5796afcf Mon Sep 17 00:00:00 2001 From: Hussein Kabbout Date: Wed, 23 Sep 2020 18:28:03 +0200 Subject: [PATCH] Create method fact_for for exercise 3 --- serie1/IT19ta_ZH7_S1_Aufg3.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) 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)