Lewati ke konten
🛠️ToolsShed

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.