Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
refactor: adjust anzahl maschinenzahlen
Browse files Browse the repository at this point in the history
  • Loading branch information
boostvolt committed Jan 14, 2024
1 parent e5bdeed commit b6bdf80
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 32 deletions.
9 changes: 0 additions & 9 deletions Scripts/Basics/ableiten_integrieren.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@ def ableiten(funktion, symbol=None):

# Funktion definieren
funktion = "sqrt(1 - x)"
# funktion = "exp(x)" # Für e^x
# funktion = "sin(x)"
# funktion = "cos(x)"
# funktion = "log(x)"
# funktion = "log(x, 2)" # Mit Basis 2
# funktion = "(x**3 + 4) ** -2" # Für (x^3 + 4)^(-2)
# funktion = "1 - exp(x)"
# funktion = "1 + (1 / x) + (1 / x**2)"
# funktion = "1 - x**2"

print(f"Ableitung: {ableiten(funktion)}")
# print(f"Ableitung: {ableiten(funktion, 'x')}") # Für Ableitung nach x (bei mehreren freien Variablen
Expand Down
34 changes: 14 additions & 20 deletions Scripts/Kapitel_2/anzahl_maschinenzahlen.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,21 @@
def anz_verschied_maschinZahlen(basis, mantisse, exponent, vorzeichen_exp):
"""
Funktion zum Berechnen der Anzahl verschiedener Maschinenzahlen in einem numerischen System.
return basis ** (mantisse) * (basis ** (exponent + vorzeichen_exp) - 1) + 1

:param basis: Basis des Zahlenformats, z.B. 10 für dezimales, 2 für binäres System.
:param mantisse: Anzahl der Stellen in der Mantisse. Die effektive Länge der Mantisse ist `mantisse - 1`,
wenn ein hidden bit berücksichtigt wird.
:param exponent: Anzahl der Stellen im Exponententeil des Formats.
:param vorzeichen_exp: Gibt an, ob der Exponent ein Vorzeichen hat. 0 für nein, 1 für ja.

:return: Gibt die Gesamtzahl der verschiedenen Maschinenzahlen zurück, die in dem spezifizierten
numerischen Format dargestellt werden können. Dies umfasst alle Kombinationen von Mantisse,
Exponent und Vorzeichen (falls vorhanden).
########################################################################################

Die Berechnung basiert auf der Formel:
basis^(mantisse - 1) * (basis^(exponent + vorzeichen_exp) - 1) + 1
Hierbei wird die Anzahl der möglichen Werte für die Mantisse und den Exponenten (inklusive Vorzeichen) berechnet.
Das zusätzliche +1 berücksichtigt den Fall der Darstellung der Zahl Null.
"""
return basis ** (mantisse) * (basis ** (exponent + vorzeichen_exp) - 1) + 1
# Basis
basis = 2

# Anzahl Stellen für Mantisse
mantisse_stellen = 15

# Anzahl Stellen für Exponent
exponent_stellen = 5

if __name__ == "__main__":
# Beispiel aus Prüfung FS20 Aufgabe 1a)
# Vorzeichen (Ja = 1, Nein = 0)
vorzeichen = 1

anzahl = anz_verschied_maschinZahlen(2, 15, 5, 1)
print(anzahl)
print(
anz_verschied_maschinZahlen(basis, mantisse_stellen, exponent_stellen, vorzeichen)
)
5 changes: 2 additions & 3 deletions Scripts/Kapitel_3/newtonverfahren.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def newtonverfahren_toleranz(funktion, x_0, toleranz, debug=False):
abgeleitete_funktion = diff(funktion)

x_n = x_0[str(symbols[0])]
i = 0
i = 0
while True:
x_n_minus_1 = x_n
x_n = x_n_minus_1 - (
Expand All @@ -33,7 +33,7 @@ def newtonverfahren_toleranz(funktion, x_0, toleranz, debug=False):
if abs(x_n - x_n_minus_1) < toleranz:
break

i += 1
i += 1

return x_n

Expand Down Expand Up @@ -83,4 +83,3 @@ def newtonverfahren_anzahl_iterationen(funktion, x_0, iterationen, debug=False):
# iterationen = 5

# newtonverfahren_anzahl_iterationen(funktion, x_0, iterationen, True)

0 comments on commit b6bdf80

Please sign in to comment.