Peringkat rata-rata untuk nilai sama
Berikan peringkat rata-rata mulai satu kepada maksimal 1000 nilai numerik hingga dengan mempertahankan posisi.
from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return resultTinjau 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.
Proyek
Uji nilai sama, negatif dan masukan kosong, serta tolak Boolean dan pecahan tidak hingga sebelum mengurutkan.
from math import isfinite
def average_ranks(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or
(type(v) is float and not isfinite(v)) for v in values
):
raise ValueError("values.invalid")
order = sorted(range(len(values)), key=values.__getitem__)
result = [0.0] * len(values)
first = 0
while first < len(order):
end = first + 1
while end < len(order) and values[order[end]] == values[order[first]]:
end += 1
rank = (first + 1 + end) / 2
for i in order[first:end]:
result[i] = rank
first = end
return resultBerikan nilai yang sama posisi eksplisit dalam hasil
RankTrell adalah ruang kerja pemrograman AI untuk Windows bagi pengembang yang menerjemahkan aturan data menjadi perubahan implementasi. Buka proyek dan jelaskan bagaimana aplikasi harus memperlakukan nilai sama, hasil yang hilang, serta hubungan urutan masukan dan keluaran. Minta model yang terhubung memeriksa perhitungan dan penggunanya agar usulan menjawab aturan bisnis, bukan sekadar menghasilkan daftar terurut.
Konteks ranks.py menyarankan tugas tentang peringkat rata-rata untuk nilai seri. Anda dapat meminta penjelasan bagaimana hasil dipetakan kembali ke posisi aslinya, lalu meminta perubahan terfokus jika proyek Anda berperilaku berbeda. Gunakan contoh kecil dengan jawaban yang diketahui agar diskusi tetap konkret. Tinjau kebijakan nilai seri maupun representasi yang dikembalikan ke bagian aplikasi lainnya.
Setelah implementasi siap diperiksa, jalankan pemeriksaan proyek pada nilai sama, nilai negatif, dan masukan yang seharusnya ditolak fungsi. Bandingkan hasil aktual dengan contoh yang disepakati sebelum penyuntingan. RankTrell mendukung endpoint model kompatibel OpenAI atau Anthropic, dengan kredensial bila diperlukan. Anda dapat memilih model AI tanpa batasan yang ditawarkan melalui koneksi itu, tunduk pada ketentuan penyedianya; alat dan batas konteks bergantung pada model serta server. Hasil yang diharapkan dengan jelas tetap lebih berguna daripada keyakinan terhadap penjelasan yang dihasilkan.
Aturan peringkat yang perlu ditetapkan sebelum menerima kode
Haruskah nilai seri mendapatkan posisi berbeda?
Itu bergantung pada aturan peringkat yang dibutuhkan aplikasi Anda. Nyatakan apakah nilai seri berbagi peringkat rata-rata, berbagi peringkat lain, atau menggunakan kunci sekunder. Minta contoh sebelum implementasi agar kebijakan pilihan terlihat dan dapat diuji.
Mengapa mempertahankan hubungan dengan urutan masukan asli?
Komponen pengguna mungkin perlu mengaitkan setiap peringkat dengan rekaman yang memberikan nilainya. Periksa pemetaan itu secara eksplisit; urutan yang terurut benar tetap dapat memberikan hasil pada rekaman yang salah jika posisi tidak dipulihkan.
Bisakah angka tidak valid langsung ditempatkan di akhir urutan?
Hanya jika itu kebijakan yang Anda tentukan dan dipahami penggunanya. Jika tidak, wajibkan penolakan atau representasi eksplisit lain. Periksa validasi numerik bersama kode peringkat, bukan membiarkan perilaku perbandingan saat eksekusi menentukan aturan aplikasi.
Bagaimana meninjau refaktor peringkat tanpa kumpulan data besar?
Mulailah dengan beberapa kasus yang dapat diperiksa manual, berisi nilai seri, nilai berbeda, dan masukan kosong. Lalu jalankan data proyek yang representatif sesuai kebutuhan. Kasus kecil memudahkan identifikasi perbedaan kebijakan sebelum validasi lebih luas menambah volume.
RankTrell · Diperbarui 2026-10-25