Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menghasilkan urutan acak dari perangkat eksternal.
Sintaks
class random_device {
public:
typedef unsigned int result_type;
// constructor
explicit random_device(const std::string& token = "");
// properties
static result_type min();
static result_type max();
double entropy() const;
// generate
result_type operator()();
// no-copy functions
random_device(const random_device&) = delete;
void operator=(const random_device&) = delete;
};
Anggota
random_device
Entropi
random_device::operator()
Keterangan
Kelas ini menjelaskan sumber angka acak, dan diizinkan tetapi tidak diharuskan untuk tidak deterministik atau aman secara kriptografis oleh ISO C++ Standard. Dalam implementasi Visual Studio, nilai yang dihasilkan tidak deterministik dan aman secara kriptografis, tetapi berjalan lebih lambat daripada generator yang dibuat dari mesin dan adaptor mesin (seperti mersenne_twister_engine, mesin pilihan berkualitas tinggi dan cepat untuk sebagian besar aplikasi).
random_device hasil didistribusikan secara seragam dalam rentang tertutup [ 0, 232).
random_device tidak dijamin akan mengakibatkan panggilan non-pemblokiran.
Umumnya, random_device digunakan untuk menyemai generator lain yang dibuat dengan mesin atau adaptor mesin. Untuk informasi selengkapnya, lihat acak>.<
Contoh
Kode berikut menunjukkan fungsionalitas dasar kelas ini dan contoh hasil. Karena sifat random_devicenon-deterministik , nilai acak yang ditampilkan di bagian Output tidak akan cocok dengan hasil Anda. Ini normal dan diharapkan.
// random_device_engine.cpp
// cl.exe /W4 /nologo /EHsc /MTd
#include <random>
#include <iostream>
using namespace std;
int main()
{
random_device gen;
cout << "entropy == " << gen.entropy() << endl;
cout << "min == " << gen.min() << endl;
cout << "max == " << gen.max() << endl;
cout << "a random value == " << gen() << endl;
cout << "a random value == " << gen() << endl;
cout << "a random value == " << gen() << endl;
}
entropy == 32
min == 0
max == 4294967295
a random value == 2378414971
a random value == 3633694716
a random value == 213725214
Contoh ini sederhana dan tidak mewakili kasus penggunaan umum untuk generator ini. Untuk contoh kode yang lebih representatif, lihat acak>.<
Persyaratan
Header:<acak>
Namespace: std
random_device::random_device
Membuat generator.
random_device(const std::string& = "");
Keterangan
Konstruktor menginisialisasi generator sesuai kebutuhan, mengabaikan parameter string. Melemparkan nilai jenis yang ditentukan implementasi yang berasal dari pengecualian jika random_device tidak dapat diinisialisasi.
random_device::entropy
Memperkirakan keacakan sumber.
double entropy() const noexcept;
Keterangan
Fungsi anggota mengembalikan perkiraan keacakan sumber, seperti yang diukur dalam bit.
random_device::operator()
Mengembalikan nilai acak.
result_type operator()();
Keterangan
Mengembalikan nilai yang didistribusikan secara seragam dalam interval tertutup [ min, max] seperti yang ditentukan oleh fungsi min() anggota dan max(). Melemparkan nilai jenis yang ditentukan implementasi yang berasal dari pengecualian jika angka acak tidak dapat diperoleh.