Kalkulator Pecahan Berlanjut
Ubah desimal atau pecahan ke notasi pecahan berlanjut dengan konvergen.
Tentang alat ini
Pecahan berlanjut adalah representasi matematis yang mengekspresikan bilangan real apa pun sebagai deret pembagian yang bersarang. Berbeda dengan notasi desimal standar, pecahan berlanjut mengungkapkan struktur aritmetika mendasar suatu bilangan dan memberikan aproksimasi rasional yang semakin baik. Alat ini mengonversi input Anda—baik itu angka desimal seperti 3.14159 atau pecahan seperti 355/113—ke bentuk pecahan berlanjutnya, memudahkan Anda memahami bagaimana para ahli matematika secara historis menemukan aproksimasi rasional yang luar biasa presisi untuk konstanta irasional.
Menggunakan kalkulator ini sangat sederhana: masukkan angka desimal Anda atau pecahan dalam bentuk pembilang/penyebut, kemudian tentukan berapa banyak suku yang ingin Anda hitung. Alat ini menampilkan notasi pecahan berlanjut dalam bentuk [a₀; a₁, a₂, ...] dan menghasilkan tabel konvergen—urutan pecahan yang secara progresif mendekati bilangan asli Anda dengan akurasi yang meningkat. Setiap konvergen memberikan aproksimasi rasional terbaik yang mungkin relatif terhadap ukuran penyebutnya, sebuah sifat yang dimanfaatkan dalam sistem navigasi, perhitungan astronomi, dan penyetelan musik.
Pecahan berlanjut sangat berharga dalam teori bilangan dan kriptografi, di mana aproksimasi bilangan irasional secara efisien dapat mengungkapkan sifat-sifat matematis yang halus. Pola periodik yang muncul untuk bilangan irasional tertentu (seperti akar kuadrat dari 2) mengungkapkan koneksi mendalam ke aljabar dan geometri. Baik Anda menjelajahi matematika murni, memvalidasi aproksimasi teknik, atau hanya penasaran mengapa 355/113 mendekati π dengan sangat akurat, alat ini mengubah teori pecahan berlanjut abstrak menjadi komputasi visual dan interaktif.
Pertanyaan yang Sering Diajukan
Implementasi Kode
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.