{"id":4671,"date":"2020-05-06T05:20:22","date_gmt":"2020-05-06T04:20:22","guid":{"rendered":"http:\/\/roboblog.fatal-fury.de\/?p=4671"},"modified":"2020-05-06T05:20:22","modified_gmt":"2020-05-06T04:20:22","slug":"c-guns-generate-random-bits-std-c-way","status":"publish","type":"post","link":"http:\/\/roboblog.fatal-fury.de\/?p=4671","title":{"rendered":"C++ Guns: generate random bits - std C++ way"},"content":{"rendered":"<p>I found only one std C++ way to generator random bool value: using std::bernoulli_distribution. It returns bool values and has a default constructor with probability p=0.5. So the generated boolen are \"uniform\" distributed.<\/p>\n<p>This is perhaps the slowest variant. The internet is full of better ideas. Some use std C++ random classes but they all need some extra code to work. For example: cast int to bool, extract one bit from a 32bit integer value.<\/p>\n<pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\r\n#include &lt;random&gt;\r\n\r\nstd::random_device rd;\r\nstd::mt19937 g(rd());\r\nstd::bernoulli_distribution dis_true_false;\r\n\r\nif(dis_true_false(g)) {\r\n   \/\/ heads\r\n} else {\r\n   \/\/ tails\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I found only one std C++ way to generator random bool value: using std::bernoulli_distribution. It returns bool values and has a default constructor with probability p=0.5. So the generated boolen are \"uniform\" distributed. This is perhaps the slowest variant. The internet is full of better ideas. Some use std C++ random classes but they all [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[17],"class_list":["post-4671","post","type-post","status-publish","format-standard","hentry","category-allgemein","tag-cpp"],"_links":{"self":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4671"}],"version-history":[{"count":4,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4671\/revisions"}],"predecessor-version":[{"id":4675,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=\/wp\/v2\/posts\/4671\/revisions\/4675"}],"wp:attachment":[{"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4671"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/roboblog.fatal-fury.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}