Zum Inhalt springen
🛠️ToolsShed

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.