Calcolatore Frazioni Continue
Converti decimali o frazioni in notazione a frazione continua con convergenti.
Informazioni sullo strumento
Una frazione continua è una rappresentazione matematica che esprime qualsiasi numero reale come una sequenza di divisioni annidate. A differenza della notazione decimale standard, le frazioni continue rivelano la struttura aritmetica sottostante di un numero e forniscono approssimazioni razionali progressivamente migliori. Questo strumento converte il vostro input—sia esso un numero decimale come 3.14159 o una frazione come 355/113—nella sua forma di frazione continua, permettendovi di capire facilmente come i matematici hanno storicamente scoperto approssimazioni razionali notevolmente precise di costanti irrazionali.
Usare questo calcolatore è semplice: inserite il vostro numero decimale o una frazione nella forma numeratore/denominatore, quindi specificate quanti termini desiderate calcolare. Lo strumento visualizza la notazione di frazione continua nella forma [a₀; a₁, a₂, ...] e genera una tabella di convergenti—la sequenza di frazioni che si avvicinano progressivamente al vostro numero originale con precisione sempre crescente. Ogni convergente fornisce la migliore approssimazione razionale possibile rispetto alla dimensione del suo denominatore, una proprietà sfruttata nei sistemi di navigazione, nei calcoli astronomici e nell'accordatura musicale.
Le frazioni continue sono particolarmente preziose in teoria dei numeri e crittografia, dove approssimare numeri irrazionali in modo efficiente può esporre proprietà matematiche sottili. I modelli periodici che emergono per certi numeri irrazionali (come la radice quadrata di 2) rivelano connessioni profonde all'algebra e alla geometria. Che stiate esplorando matematica pura, convalidando approssimazioni ingegneristiche o semplicemente curiosi del perché 355/113 approssimi π così accuratamente, questo strumento trasforma la teoria astratta delle frazioni continue in calcolo visuale e interattivo.
Domande Frequenti
Implementazione del Codice
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.