Kettenbruch-Rechner
Dezimalzahlen oder Brüche in Kettenbruchnotation mit Näherungsbrüchen umwandeln.
Über dieses Tool
Ein Kettenbruch ist eine mathematische Darstellung, die jede reelle Zahl als Folge verschachtelter Divisionen ausdrückt. Im Gegensatz zur Standarddezimalschreibweise offenbaren Kettenbrüche die zugrunde liegende arithmetische Struktur einer Zahl und bieten progressiv bessere rationale Näherungen. Dieses Werkzeug konvertiert Ihre Eingabe—ob eine Dezimalzahl wie 3.14159 oder ein Bruch wie 355/113—in ihre Kettenbruchform und ermöglicht es Ihnen, leicht zu verstehen, wie Mathematiker historisch bemerkenswert präzise rationale Näherungen irrationaler Konstanten entdeckt haben.
Dieses Taschenrechner-Tool ist einfach zu bedienen: Geben Sie Ihre Dezimalzahl oder einen Bruch in der Form Zähler/Nenner ein und geben Sie an, wie viele Terme Sie berechnen möchten. Das Werkzeug zeigt die Kettenbruchnotation in der Form [a₀; a₁, a₂, ...] an und generiert eine Tabelle von Näherungsbrüchen—die Folge von Brüchen, die sich Ihrer ursprünglichen Zahl mit zunehmender Genauigkeit progressiv annähern. Jeder Näherungsbruch bietet die beste mögliche rationale Näherung relativ zur Größe seines Nenners, eine Eigenschaft, die in Navigationssystemen, astronomischen Berechnungen und Musikstimmung genutzt wird.
Kettenbrüche sind besonders wertvoll in der Zahlentheorie und Kryptographie, wo effiziente Annäherung irrationaler Zahlen subtile mathematische Eigenschaften aufdecken kann. Die periodischen Muster, die bei bestimmten irrationalen Zahlen (wie der Quadratwurzel von 2) entstehen, offenbaren tiefe Verbindungen zur Algebra und Geometrie. Ob Sie reine Mathematik erforschen, technische Näherungen validieren oder einfach nur neugierig sind, warum 355/113 π so genau approximiert, dieses Werkzeug verwandelt abstrakte Kettenbruchtheorie in visuelle, interaktive Berechnung.
Häufig gestellte Fragen
Code-Implementierung
import math
def continued_fraction(x: float, max_terms: int = 20) -> list[int]:
"""Compute continued fraction representation of x"""
terms = []
remaining = x
for _ in range(max_terms):
a = int(math.floor(remaining))
terms.append(a)
frac = remaining - a
if abs(frac) < 1e-10:
break
remaining = 1 / frac
if not math.isfinite(remaining):
break
return terms
def convergents(terms: list[int]) -> list[tuple[int, int]]:
"""Compute convergents (rational approximations) from continued fraction terms"""
conv = []
h_prev, h_curr = 1, terms[0]
k_prev, k_curr = 0, 1
conv.append((h_curr, k_curr))
for i in range(1, len(terms)):
a = terms[i]
h_next = a * h_curr + h_prev
k_next = a * k_curr + k_prev
h_prev, h_curr = h_curr, h_next
k_prev, k_curr = k_curr, k_next
conv.append((h_curr, k_curr))
return conv
# Example: pi
pi_terms = continued_fraction(math.pi, 10)
print(f"pi = [{pi_terms[0]}; {', '.join(map(str, pi_terms[1:]))}]")
for num, den in convergents(pi_terms):
approx = num / den
error = abs(approx - math.pi)
print(f" {num}/{den} = {approx:.10f} (error: {error:.2e})")
# Golden ratio
phi = (1 + math.sqrt(5)) / 2
print(f"phi terms: {continued_fraction(phi, 8)}") # All ones!
# sqrt(2)
sqrt2_terms = continued_fraction(math.sqrt(2), 8)
print(f"sqrt(2) terms: {sqrt2_terms}") # [1; 2, 2, 2, ...]
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.