Rumah >pembangunan bahagian belakang >C++ >Mengapakah `std::random_device` Saya Menghasilkan Jujukan Yang Sama pada MinGW GCC 4.8.1?

Mengapakah `std::random_device` Saya Menghasilkan Jujukan Yang Sama pada MinGW GCC 4.8.1?

DDD
DDDasal
2024-12-31 14:41:14772semak imbas

Why Does My `std::random_device` Produce the Same Sequence on MinGW GCC 4.8.1?

Mengapa saya mendapat jujukan yang sama daripada std::random_device dengan MinGW GCC 4.8.1?

Dalam kod yang disediakan, contoh of std::random_device (rd) digunakan sebagai benih untuk enjin Mersenne Twister (mt). Walau bagaimanapun, tingkah laku yang diperhatikan untuk mendapatkan urutan nombor rawak yang sama dengan setiap larian menunjukkan bahawa rd mungkin tidak menyediakan benih yang benar-benar rawak.

Menurut dokumentasi (http://en.cppreference.com/ w/cpp/numeric/random/random_device), std::random_device direka untuk mengakses sumber perkakasan bukan penentu untuk rawak. Walau bagaimanapun, jika sumber sedemikian tidak tersedia, pelaksanaan mungkin menggunakan enjin nombor rawak pseudo. Ini boleh menerangkan tingkah laku deterministik yang diperhatikan dengan MinGW GCC 4.8.1.

Perlu ambil perhatian bahawa peranti_rawak tidak dijamin memberikan rawak sebenar. Sesetengah pelaksanaan, seperti yang terdapat dalam MinGW GCC 4.8.1, mungkin sengaja menyampaikan urutan tetap untuk menunjukkan ketak rawak strim.

Untuk mendapatkan output yang berbeza bagi setiap larian, seseorang harus mempertimbangkan kaedah pembenihan alternatif penjana nombor rawak, seperti menggunakan benih berdasarkan masa semasa atau cincang kriptografi beberapa input pengguna.

Atas ialah kandungan terperinci Mengapakah `std::random_device` Saya Menghasilkan Jujukan Yang Sama pada MinGW GCC 4.8.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn