Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Distribusi RAND() di MySQL

Saya belum dapat menemukan kode sumber untuk fungsi tersebut dengan cepat; melihatnya mungkin membantu mendapatkan jawaban yang lebih baik. Yang mengatakan, sepertinya 'tidak.. tapi agak dekat'.

Dari dokumentasi saya dapat melihatnya mencoba menjadi acak (dan secara opsional Anda dapat menyemainya); tetapi ada dua peringatan yang berarti itu mungkin tidak selalu seragam ketika Anda mengharapkannya untuk masalah pertama ada di dokumentasinya:

RAND() is not meant to be a perfect random generator. It is a fast way to generate random numbers on demand that is portable between platforms for the same MySQL version. 

yaitu kode untuk itu dipertanyakan sebagai generator nomor acak yang benar - itu cukup baik untuk sebagian besar tujuan, tetapi tidak dapat dipercaya untuk digunakan dalam, katakanlah, enkripsi, dan saya bertaruh tidak dapat dipercaya bahkan sebagai seragam seperti yang Anda harapkan.

Klaim mereka bahwa itu tidak sempurna berarti hampir pasti akan gagal setidaknya beberapa dari tes ini; caranya masih belum jelas, tetapi jika itu bukan RNG yang sempurna, Anda tidak akan melihat distribusi yang seragam sempurna; Saya mengharapkan celah atau puncak rentang yang lebih/kurang umum.http://www.stat.fsu.edu/pub/diehard/cdrom/pscript/monkey.ps (sudah ada pekerjaan lain sejak itu tetapi ini masih merupakan beberapa pekerjaan utama dalam memvalidasi RNG).

Itu akan bertaruh bahwa kode di belakangnya pasti tidak cobalah untuk menjamin distribusi yang seragam, karena untuk melakukannya (lacak riwayat apa yang sudah muncul) akan membuang banyak memori. Bagaimanapun, jika Anda telah menghasilkan banyak nilai menggunakan RNG yang sempurna, tidak ada yang menjamin bahwa jika nilai Anda sejauh ini semuanya rendah, nilai berikutnya akan tinggi. Itu akan selalu sama acaknya..




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jooq memperluas dialek yang ada. Mengadopsi dialek MySQL ke dialek Apache Hive

  2. Pengunggahan gambar PHP tot MySQL tidak berfungsi

  3. Tipe data mysql atau kode php bertambah 1 setiap kali halaman di database saya dimuat di browser

  4. Cara Memilih Baris N Teratas Per Grup di MySQL

  5. desain tabel + pertanyaan SQL