Sürekli Kesir Hesaplayıcı
Ondalık sayı veya kesirleri sürekli kesir gösterimine dönüştür.
Bu araç hakkında
Devamlı kesir, herhangi bir gerçek sayıyı iç içe bölümlerin bir dizisi olarak ifade eden matematiksel bir gösterimdir. Standart ondalık gösterimden farklı olarak, devamlı kesirler bir sayının temel aritmetik yapısını ortaya çıkarır ve giderek daha iyi rasyonel yaklaşımlar sağlar. Bu araç, girişinizi—3.14159 gibi bir ondalık sayı ya da 355/113 gibi bir kesir—devamlı kesir biçimine dönüştürerek, matematikçilerin irrasyonel sabitler için tarihsel olarak nasıl olağanüstü kesin rasyonel yaklaşımlar bulduğunu anlamanızı kolaylaştırır.
Bu hesap makinesi kullanmak basittir: ondalık sayınızı veya pay/payda biçiminde bir kesri girin, ardından kaç terim hesaplamak istediğinizi belirtin. Araç, devamlı kesir gösterimini [a₀; a₁, a₂, ...] biçiminde görüntüler ve yakınsayan kesirlerin bir tablosunu oluşturur—orijinal sayınıza giderek artan kesinlikle yaklaşan kesirler dizisi. Her yakınsayan kesir, paydasının boyutuna göre mümkün olan en iyi rasyonel yaklaşımı sağlar; bu özellik navigasyon sistemlerinde, astronomik hesaplamalarda ve müzik ayarlamada kullanılır.
Devamlı kesirler sayı teorisi ve kriptografide özellikle değerlidir; irrasyonel sayıları verimli şekilde yaklaşık olarak hesaplamak ince matematiksel özellikleri ortaya çıkarabilir. Belirli irrasyonel sayılar (2'nin karekökü gibi) için ortaya çıkan periyodik desenler cebir ve geometri ile derin bağlantıları ortaya koyar. Saf matematiği araştırıyor olun, mühendislik yaklaşımlarını doğruluyor olun veya 355/113'ün π'yi neden bu kadar doğru bir şekilde yaklaşık hale getirdiğinden merak ediyor olun, bu araç soyut devamlı kesir teorisini görsel, etkileşimli hesaplamaya dönüştürür.
Sıkça Sorulan Sorular
Kod Uygulaması
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.