MMonicVale
Ruang kerja kode dengan AI

Pembagian polinom monik

Bagi polinom bilangan bulat dengan paling banyak 21 koefisien oleh pembagi monik.

● ● ●MonicVale●
Alur kerja · Pembagian polinom monik ×
def divide_monic(dividend, divisor):
    for row in (dividend, divisor):
        if type(row) not in (list, tuple) or len(row) > 21:
            raise ValueError("at most 21 coefficients")
        if any(type(x) is not int for x in row): raise ValueError("integers")
    def trim(row):
        row = list(row)
        while row and row[0] == 0: row.pop(0)
        return row
    a, b = trim(dividend), trim(divisor)
    if not b or b[0] != 1: raise ValueError("monic divisor")
    quotient = [0] * max(0, len(a) - len(b) + 1)
    while a and len(a) >= len(b):
        degree, factor = len(a) - len(b), a[0]
        quotient[len(quotient)-1-degree] = factor
        a = trim([x-factor*y for x,y in zip(a,b)] + a[len(b):])
    return trim(quotient), a
✳Bagi polinom bilangan bulat dengan paling banyak 21 koefisien oleh pembagi monik.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
  1. Tinjau sebelum menerapkan

    Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

  2. Model

    Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

  3. Proyek

    Uji polinom nol dan pembagi konstan, tolak koefisien bukan bilangan bulat atau pembagi nonmonik dan periksa identitas hasil bagi-sisa.

Alur kerja

Pembagian polinom monik

Alur kerja ↗
Alur kerja
def divide_monic(dividend, divisor):
    for row in (dividend, divisor):
        if type(row) not in (list, tuple) or len(row) > 21:
            raise ValueError("at most 21 coefficients")
        if any(type(x) is not int for x in row): raise ValueError("integers")
    def trim(row):
        row = list(row)
        while row and row[0] == 0: row.pop(0)
        return row
    a, b = trim(dividend), trim(divisor)
    if not b or b[0] != 1: raise ValueError("monic divisor")
    quotient = [0] * max(0, len(a) - len(b) + 1)
    while a and len(a) >= len(b):
        degree, factor = len(a) - len(b), a[0]
        quotient[len(quotient)-1-degree] = factor
        a = trim([x-factor*y for x,y in zip(a,b)] + a[len(b):])
    return trim(quotient), a
Ruang kerja kode dengan AI

Jaga asumsi matematika tetap terlihat saat menyunting kode

MonicVale adalah ruang kerja pemrograman Windows untuk membahas fungsi bantu matematika dalam konteks aplikasi yang memakainya. Mulailah dengan folder proyek dan identifikasi asumsi yang diandalkan fungsi tersebut. Minta asisten memeriksa asumsi itu dalam kode sebelum meminta refaktorisasi. Usulan yang berguna menjelaskan perilaku yang tetap sama dan masukan yang masih di luar kontrak yang didukung.

Tugas terkait polynomial.py dapat memeriksa pembagian yang mensyaratkan pembagi monik. Sertakan contoh urutan koefisien, nol di awal, serta hasil bagi dan sisa yang diharapkan. Tanyakan bagaimana implementasi saat ini merepresentasikan hasil tersebut, lalu tinjau penyederhanaan yang diusulkan terhadap representasi itu. Dengan demikian, percakapan tetap berlandaskan perilaku perangkat lunak, bukan membiarkan penjelasan matematika umum menggantikan peninjauan implementasi.

Setelah menyunting, jalankan pemeriksaan proyek dan bandingkan keluaran dengan contoh yang dihitung secara independen. Periksa juga perilaku penolakan, khususnya ketika pemanggil mungkin memberikan pembagi yang tidak didukung fungsi. MonicVale terhubung ke endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung, dengan kredensial sesuai kebutuhan. Model tanpa pembatasan hanya menjadi pilihan jika endpoint pilihan Anda menyediakannya; batasan, kapasitas konteks, dan alat tetap bergantung pada layanan itu. Gunakan ruang kerja untuk menyatukan asumsi dan hasil pengamatan saat menentukan kesiapan perubahan.

Asumsi di balik fungsi bantu matematika

Mengapa urutan koefisien harus dijelaskan sebelum meminta suntingan?

Daftar yang sama dapat menggambarkan polinomial berbeda menurut konvensi yang berbeda. Jelaskan cara proyek mengurutkan koefisien dan merepresentasikan nol, lalu periksa pemanggil serta nilai kembalian terhadap konvensi itu sebelum menerima refaktorisasi usulan model.

Haruskah fungsi bantu diam-diam menyesuaikan pembagi yang tidak didukung?

Hanya jika Anda sengaja mengubah kontraknya dan memeriksa konsekuensinya. Fungsi yang terbatas pada pembagi monik harus melaporkan masukan yang tidak didukung secara konsisten; generalisasi mungkin memerlukan asumsi aritmetika berbeda dan pengujian tambahan di seluruh kode pemanggil.

Apa yang perlu saya verifikasi tentang sisa pembagian?

Periksa representasi yang diharapkan pemanggil dan hubungan matematis untuk contoh yang didukung. Sertakan kasus tanpa sisa dan dengan sisa bukan nol agar usulan tidak lolos hanya karena menangani pembagian mudah.

Apakah fungsi matematika yang lebih pendek lebih mudah dipercaya?

Belum tentu. Tinjau apakah versi pendek mempertahankan validasi, konvensi keluaran, dan perilaku kasus batas. Tanyakan alasan setiap penyederhanaan dan uji kontraknya; keringkasan bukan bukti bahwa asumsi matematika tetap valid.

Unduh untuk Windows ↗

MonicVale · Diperbarui 2026-10-25