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.