Transformasi Walsh–Hadamard bilangan bulat
Terapkan transformasi Walsh–Hadamard tanpa normalisasi pada urutan tak kosong bilangan bulat terbatas dengan panjang pangkat dua hingga 256.
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return out| Proyek | Tolak panjang tidak sah dan nilai boolean, lalu pastikan dua penerapan mengalikan masukan asli dengan panjangnya. |
|---|---|
| Tinjau sebelum menerapkan | Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain. |
| 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. |
def walsh_transform(values):
out = list(values)
n = len(out)
if not 1 <= n <= 256 or n & (n - 1):
raise ValueError("length.power_two")
if any(type(v) is not int or abs(v) > 1000000 for v in out):
raise ValueError("value.range")
step = 1
while step < n:
for start in range(0, n, 2 * step):
for j in range(start, start + step):
a, b = out[j], out[j + step]
out[j], out[j + step] = a + b, a - b
step *= 2
return outJaga konvensi transformasi tetap terlihat selama refaktorisasi
WalshAster adalah ruang kerja pemrograman Windows untuk mengerjakan perubahan sumber dengan model AI terhubung. Refaktorisasi komputasi lebih mudah dinilai jika konvensi aslinya dinyatakan terlebih dahulu. Jelaskan masukan yang diterima, bentuk keluaran yang diharapkan, dan aturan penskalaan sebelum meminta asisten menata ulang perulangan atau memperkenalkan implementasi berbeda.
Contoh transformasi Walsh–Hadamard bilangan bulat menyediakan tugas konkret untuk percakapan itu. Minta model memeriksa pasangan pembaruan dan batas panjang masukan dalam konteks modul sendiri. Nyatakan konvensi contoh secara eksplisit agar nama yang dikenal tidak membuat asisten mengasumsikan varian ternormalisasi atau urutan hasil berbeda.
Selama peninjauan, bandingkan usulan kode dengan keluaran kecil yang diketahui dan sifat yang harus dipertahankan proyek. Untuk contoh ini, menerapkan transformasi dua kali memberikan pemeriksaan penskalaan yang berguna, bersama kasus masukan yang ditolak. Jalankan pemeriksaan sendiri dan periksa setiap pemanggil yang menafsirkan keluaran; refaktorisasi internal tidak boleh diam-diam mengubah konvensi data yang diekspos di sana.
Pilih model AI tanpa pembatasan hanya melalui endpoint yang kompatibel dengan OpenAI atau endpoint Anthropic yang didukung dan menyediakannya. Konfigurasikan kredensial wajib dan periksa kapasitas konteks serta alat. Batasan model terhubung tetap bergantung pada penyedia, dan penyederhanaan usulannya tetap memerlukan bukti dari implementasi serta pengujian nyata Anda.
Pertanyaan peninjauan untuk pemeliharaan transformasi
- Konvensi apa yang harus didokumentasikan sebelum meminta refaktorisasi?
Nyatakan urutan keluaran, penskalaan, dan panjang masukan yang diterima, beserta tipe elemen yang ditangani modul. Sertakan masukan dan keluaran kecil yang diketahui. Ini mencegah usulan mengganti konvensi transformasi dengan yang berbeda di bawah nama yang sama.
- Apakah pemeriksaan transformasi dua kali cukup dengan sendirinya?
Itu berguna untuk konvensi yang dicontohkan, tetapi harus disertai keluaran yang diketahui dan pengujian batas masukan. Periksa juga interpretasi pemanggil. Sifat aljabar yang dipertahankan belum tentu membuktikan urutan dan perilaku antarmuka tetap sesuai harapan aplikasi.
- Bagaimana meninjau perubahan yang memutasi masukan?
Tentukan dahulu apakah mutasi diizinkan kontrak yang ada. Sertakan pemanggil yang memakai ulang nilai asli dan uji pemakaian ulang itu secara eksplisit. Usulan penghematan memori mengubah perilaku yang dapat diamati jika pemanggil mengandalkan deret masukan yang tidak berubah.
- Apakah memakai model lain mengubah verifikasi yang diperlukan?
Tidak. Pertahankan masukan yang diterima, hasil yang diketahui, dan pemeriksaan penskalaan yang sama ketika mempertimbangkan usulan model lain. Pemilihan model dapat mengubah penjelasan atau kode usulan, tetapi tidak membuktikan kebenaran atau menggantikan verifikasi proyek.
WalshAster · Diperbarui 2026-10-25