Create method fact_for for exercise 3
This commit is contained in:
parent
df0a438ada
commit
455769b152
@ -1,4 +1,37 @@
|
|||||||
#!/usr/bin/env python3
|
#!/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__":
|
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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user