Giriş
Bernoulli - Binomial Distribution - Binom dağılım demektir. Yani true veya false değer üretir.
Bernoulli - Binomial Distribution - Binom dağılım demektir. Yani true veya false değer üretir.
Bu dağılım sınıfını kullanmak şöyle yapmaktan daha kolay
if (random.rand() < 0.5) {
...
} else {
...
}
Örnek1 ve 0'lardan oluşan bir string üretmek isteyelim. Şöyle yaparız.
#include <random>
#include <string>
template <typename Generator>
std::string generate_binary_string(Generator& g, std::size_t n) {
std::bernoulli_distribution d;
std::string s;
s.reserve(n);
for (std::size_t i = 0; i < n; ++i) {
s.push_back(d(g) ? '1' : '0');
}
return s;
}
Çağırmak için şöyle yaparız#include <iostream>
int main() {
std::random_device g;
std::cout << generate_binary_string(g, 32u) << std::endl;
}
constructor - default0.5 ile ilklenir. Yani %50 true, %50 false üret anlamına gelir.
constructor - probability of true
Örnek
Şöyle yaparız
struct Point {
Point();
double x;
double y;
unsigned int label;
};
Point::Point() {
static std::random_device rd;
static std::mt19937 gen(rd());
static std::bernoulli_distribution type(0.4);
label = type(gen);
}
Hiç yorum yok:
Yorum Gönder