Anda sudah melakukan banyak pengamatan yang benar!
Kecuali Anda ingin melakukan seed pada kedua generator acak, mungkin akan lebih mudah dalam jangka panjang untuk memilih satu generator atau yang lain. Tetapi jika Anda memang perlu menggunakan keduanya, maka ya, Anda juga harus menyemai keduanya, karena keduanya menghasilkan nomor acak secara terpisah.
Karena numpy.random.seed()
, kesulitan utamanya adalah ini tidak aman untuk thread - yaitu, tidak aman digunakan jika Anda memiliki banyak thread eksekusi yang berbeda , karena tidak dijamin akan berfungsi jika dua thread berbeda menjalankan fungsi pada saat yang sama. Jika Anda tidak menggunakan utas, dan jika Anda dapat berharap bahwa Anda tidak perlu menulis ulang program Anda dengan cara ini di masa mendatang, numpy.random.seed()
seharusnya baik-baik saja. Jika ada alasan untuk mencurigai bahwa Anda mungkin memerlukan utas di masa mendatang, akan jauh lebih aman dalam jangka panjang untuk melakukan seperti yang disarankan, dan membuat instance lokal numpy.random.Random
kelas . Sejauh yang saya tahu, random.random.seed()
apakah thread-safe (atau setidaknya, saya belum menemukan bukti yang sebaliknya).
The numpy.random
perpustakaan berisi distribusi probabilitas beberapa tambahan yang biasa digunakan dalam penelitian ilmiah, serta beberapa fungsi kenyamanan untuk menghasilkan array dari data acak. The random.random
Perpustakaan sedikit lebih ringan, dan harus baik-baik jika Anda tidak melakukan penelitian ilmiah atau jenis lain dari pekerjaan dalam statistik.
Jika tidak, keduanya menggunakan urutan twister Mersenne untuk menghasilkan nomor acak mereka, dan keduanya sepenuhnya deterministik - yaitu, jika Anda mengetahui beberapa informasi penting, Anda dapat memprediksi dengan pasti pasti nomor apa yang akan datang berikutnya . Untuk alasan ini, baik numpy.random maupun random.random tidak cocok untuk penggunaan kriptografi yang serius . Tetapi karena urutannya sangat panjang, keduanya baik-baik saja untuk menghasilkan angka acak jika Anda tidak khawatir tentang orang yang mencoba merekayasa balik data Anda. Ini juga merupakan alasan perlunya menyemai nilai acak - jika Anda memulai di tempat yang sama setiap kali, Anda akan selalu mendapatkan urutan angka acak yang sama!
Sebagai catatan tambahan, jika Anda memang membutuhkan keacakan tingkat kriptografi, Anda harus menggunakan modul rahasia , atau sesuatu seperti Crypto.Random jika Anda menggunakan versi Python sebelum Python 3.6.
random.random
sendirian. Anda biasanya tidak membutuhkan ini.