updated Task 4

This commit is contained in:
schrom01 2022-10-13 13:31:53 +02:00
parent ca306c728b
commit d2c1d957e8
1 changed files with 10 additions and 12 deletions

View File

@ -3,19 +3,19 @@ def eps(base, n): # n = Anzahl Stellen der Mantisse
return 0.5 * (base ** (1-n)) return 0.5 * (base ** (1-n))
def digitsMantiss(base): # -5*10^-17 def bitsMantiss(base):
last_x = 0 last_x = 0
x = 1.5 x = 1.5
n = 1 n = 0
while x > 1: while x > 1:
last_x = x last_x = x
x = x - (x - 1) / base x = x - (x - 1) / base
n = n + 1 n = n + 1
return n, last_x return n, last_x
def largestNumber(digitsMantiss): def largestNumber(bitsMantiss):
x = 0.0 x = 0.0
for i in range(digitsMantiss): for i in range(bitsMantiss):
x = x + 2 ** i x = x + 2 ** i
return x return x
@ -23,16 +23,14 @@ def largestNumber_eps(eps, n):
return eps * 2**(2*n) - 1 return eps * 2**(2*n) - 1
bitsMan = bitsMantiss(2)
epsVal = eps(2, bitsMan[0])
digMan = digitsMantiss(2) largest = largestNumber(bitsMan[0])
epsVal = eps(2, digMan[0]) largest_eps = largestNumber_eps(epsVal, bitsMan[0])
largest = largestNumber(digMan[0])
largest_eps = largestNumber_eps(epsVal, digMan[0])
print(f'eps: {epsVal}') print(f'eps: {epsVal}')
print(f'Digits Mantiss: {digMan[0]}') print(f'Bits Mantiss: {bitsMan[0]}')
print(f'Smallest Number 1 + eps > 1: {digMan[1]}') print(f'Smallest Number 1 + eps > 1: {bitsMan[1]}')
print(f'largest Number 1 + qmax > qmax: {largest}') print(f'largest Number 1 + qmax > qmax: {largest}')
print(f'largest Number 1 + qmax > qmax (calculated by eps: {largest_eps}') print(f'largest Number 1 + qmax > qmax (calculated by eps: {largest_eps}')