RRankTrell
Ruang kerja kode dengan AI

Peringkat rata-rata untuk nilai sama

Berikan peringkat rata-rata mulai satu kepada maksimal 1000 nilai numerik hingga dengan mempertahankan posisi.

● ● ●RankTrell●
Alur kerja · Peringkat rata-rata untuk nilai sama ×
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 result
✳Berikan peringkat rata-rata mulai satu kepada maksimal 1000 nilai numerik hingga dengan mempertahankan posisi.
✓ 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 nilai sama, negatif dan masukan kosong, serta tolak Boolean dan pecahan tidak hingga sebelum mengurutkan.

Alur kerja

Peringkat rata-rata untuk nilai sama

Alur kerja ↗
Alur kerja
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 result
Ruang kerja kode dengan AI

Berikan 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.

Unduh untuk Windows ↗

RankTrell · Diperbarui 2026-10-25