Saltar al contenido
🛠️ToolsShed

Calculadora de Fracciones Continuas

Convierte decimales o fracciones a notación de fracción continua con convergentes.

Acerca de esta herramienta

Una fracción continua es una representación matemática que expresa cualquier número real como una secuencia de divisiones anidadas. A diferencia de la notación decimal estándar, las fracciones continuas revelan la estructura aritmética subyacente de un número y proporcionan aproximaciones racionales progresivamente mejores. Esta herramienta convierte tu entrada—ya sea un número decimal como 3.14159 o una fracción como 355/113—en su forma de fracción continua, permitiéndote entender fácilmente cómo los matemáticos han descubierto históricamente aproximaciones racionales notablemente precisas para constantes irracionales.

Usar esta calculadora es sencillo: ingresa tu número decimal o una fracción en la forma numerador/denominador, luego especifica cuántos términos deseas calcular. La herramienta muestra la notación de fracción continua en la forma [a₀; a₁, a₂, ...] y genera una tabla de convergentes—la secuencia de fracciones que aproximan progresivamente tu número original con precisión cada vez mayor. Cada convergente proporciona la mejor aproximación racional posible relativa al tamaño de su denominador, una propiedad explotada en sistemas de navegación, cálculos astronómicos y afinación musical.

Las fracciones continuas son particularmente valiosas en teoría de números y criptografía, donde aproximar números irracionales de manera eficiente puede exponer propiedades matemáticas sutiles. Los patrones periódicos que emergen para ciertos números irracionales (como la raíz cuadrada de 2) revelan conexiones profundas con el álgebra y la geometría. Ya sea que estés explorando matemáticas puras, validando aproximaciones de ingeniería o simplemente curiosamente sobre por qué 355/113 aproxima π tan precisamente, esta herramienta transforma la teoría abstracta de fracciones continuas en computación visual e interactiva.

Preguntas Frecuentes

Implementación de Código

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.