Bias shuffle

Bandingkan shuffle naif vs Fisher–Yates dengan pengaturan yang sama.

Berjalan lokal di browser Anda. Input dan hasil tidak diunggah. URL yang dibagikan hanya berisi pengaturan.

Bahasa lain ja | en | zh-CN | es | pt-BR | id | fr | hi-IN | ar

Cara pakai (3 langkah)

  1. Pilih mode daftar (ukuran atau kustom) dan atur jumlah percobaan.
  2. Klik Bandingkan untuk menjalankan kedua shuffle dengan pengaturan yang sama.
  3. Lihat heatmap & statistik, lalu salin URL yang hanya berisi pengaturan atau unduh laporan.

Lihat bias

Alat perbandingan bias shuffle

Tukar naif memakai indeks acak rentang penuh di setiap langkah. Fisher–Yates memakai rentang yang makin kecil, sehingga permutasi menjadi uniform (jika randomInt uniform).

Ini anti-pattern yang umum di JavaScript. Hasilnya bergantung pada engine dan biasanya bias.

Ringkasan

Tip: df chi-square di sini bersifat heuristik (ada batasan). Gunakan untuk intuisi, bukan sebagai bukti formal.

Grafik

Legenda: naive=merah, FY=hijau, sort=ungu (jika aktif).

Kurva adalah densitas chi-square dengan df = n² - 1 (heuristik). Garis vertikal menunjukkan χ² yang teramati.

Grafik ini mengelompokkan sel berdasarkan |i - j| (jarak dari diagonal). Nilai di atas 1 berarti “terlalu dekat dengan posisi awal”.

Hasil

Setiap sisi menampilkan matriks posisi (item i → posisi j) yang diagregasi dari trials.

Shuffle naif

Fisher–Yates

Pertanyaan umum

Apakah Fisher–Yates selalu tanpa bias?
Ini tanpa bias jika randomInt Anda uniform. Hindari modulo bias saat mengubah byte acak menjadi rentang bilangan bulat.
Kenapa tidak memakai sort(() => random - 0.5)?
Ini bias dan bergantung pada engine. Anda bisa menyertakannya di halaman ini untuk melihat hasilnya di browser Anda.
Lulus di sini berarti aman secara kriptografis?
Tidak. Alat ini menunjukkan bias algoritmik pada shuffle. Keamanan bergantung pada RNG dan model ancaman Anda.
Berapa jumlah percobaan yang sebaiknya dipakai?
Mulai dari 100k. Untuk n ≤ 8, menyalakan pelacakan permutasi membantu melihat bias lebih jelas.

Alat terkait

Kalkulator terkait