Pemilihan tiket berbobot
Petakan tiket bulat ke indeks daftar bobot bulat nonnegatif.
from bisect import bisect_right
def ticket_index(weights, ticket):
if any(type(w) is not int or w < 0 for w in weights):
raise ValueError("nonnegative integer weights")
bounds, total = [], 0
for weight in weights:
total += weight
bounds.append(total)
if type(ticket) is not int or not 0 <= ticket < total:
raise ValueError("ticket outside total")
return bisect_right(bounds, ticket)Proyek
Uji bobot nol dan batas kumulatif, lalu tolak total nol atau tiket di luar total tanpa mengambil angka acak.
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.
from bisect import bisect_right
def ticket_index(weights, ticket):
if any(type(w) is not int or w < 0 for w in weights):
raise ValueError("nonnegative integer weights")
bounds, total = [], 0
for weight in weights:
total += weight
bounds.append(total)
if type(ticket) is not int or not 0 <= ticket < total:
raise ValueError("ticket outside total")
return bisect_right(bounds, ticket)Jadikan peninjauan logika seleksi dapat direproduksi
WeightSpruce menyatukan logika aplikasi dan percakapan AI dalam ruang kerja pemrograman Windows. Ini berguna ketika aturan seleksi tampak masuk akal tetapi kasus tepinya perlu diperiksa teliti. Buka folder proyek dan minta model terhubung menelusuri keputusan dari masukan yang diberikan sampai hasil yang dikembalikan, termasuk tindakan pemanggil ketika tidak ada pilihan valid.
Contoh tickets.py dapat mendukung permintaan tentang seleksi tiket berbobot. Bawa daftar bobot kecil dan posisi tiket tertentu, lalu tanyakan apakah masing-masing dipetakan ke entri yang dimaksud. Perlakukan bobot nol dan posisi batas sebagai bagian kontrak. Ini latihan proyek konkret, bukan layanan alokasi bawaan. Peninjauan perlu menghubungkan hasil fungsi bantu dengan perilaku aplikasi yang dikendalikannya.
AI tanpa pembatasan merupakan opsi pemilihan model ketika endpoint kompatibel OpenAI atau Anthropic yang didukung menawarkan model seperti itu. Konfigurasikan alamat dan kredensial yang diwajibkan, dengan akses alat dan konteks ditentukan oleh layanan. Periksa usulan perubahan sebelum menjalankan pemeriksaan deterministik yang mengungkap kesalahan batas. Jika aplikasi juga menggunakan masukan acak, evaluasi sumber itu secara terpisah. Memisahkan pemetaan tiket dari keacakan mempermudah pemahaman komponen mana yang benar-benar diverifikasi pengujian.
Memeriksa perubahan seleksi berbobot
Bisakah pemetaan tiket diuji tanpa pengambilan sampel acak?
Ya. Gunakan bobot yang diketahui dan posisi tiket eksplisit untuk memeriksa kasus pertama, terakhir, dan batas. Ini memverifikasi pemetaan secara langsung. Percobaan acak dapat melengkapinya, tetapi bisa melewatkan kesalahan selisih satu yang sempit dan membuat kegagalan lebih sulit direproduksi.
Apa yang harus terjadi ketika semua bobot nol?
Tentukan hasil itu dalam kontrak pemanggil. Tidak ada tiket valid dalam total nol, sehingga penolakan atau alternatif yang ditetapkan secara terpisah harus ditangani dengan sengaja. Minta model menelusuri jalur kegagalan serta seleksi biasa.
Apakah pemetaan yang benar membuktikan seleksi acak yang adil?
Tidak. Pemetaan dan pembangkitan tiket merupakan komponen terpisah. Tinjau rentang dan sifat yang diwajibkan untuk sumber masukan, lalu uji integrasinya. Jangan menyimpulkan jaminan distribusi hanya karena fungsi bantu mengembalikan entri yang diharapkan untuk tiket tetap.
Pemanggil mana yang perlu ditinjau setelah perbaikan batas?
Periksa pengguna hasil yang menafsirkan indeks hasil atau membentuk rentang tiket. Periksa asumsi tentang entri yang dikecualikan dan masukan kosong. Fungsi bantu dan pemanggil harus sepakat apakah batas atas disertakan sebelum patch diterima.
WeightSpruce · Diperbarui 2026-10-25