Sleeping Beauty problem: Difference between revisions

Content added Content deleted
(Add Factor)
(Added C++ solution)
Line 31: Line 31:





=={{header|C++}}==
<lang cpp>#include <iostream>
#include <random>

int main() {
std::cout.imbue(std::locale(""));
const int experiments = 1000000;
std::random_device dev;
std::default_random_engine engine(dev());
std::uniform_int_distribution<int> distribution(0, 1);
int heads = 0, wakenings = 0;
for (int i = 0; i < experiments; ++i) {
++wakenings;
switch (distribution(engine)) {
case 0: // heads
++heads;
break;
case 1: // tails
++wakenings;
break;
}
}
std::cout << "Wakenings over " << experiments
<< " experiments: " << wakenings << '\n';
std::cout << "Sleeping Beauty should estimate a credence of: "
<< double(heads) / wakenings << '\n';
}</lang>

{{out}}
<pre>
Wakenings over 1,000,000 experiments: 1,500,090
Sleeping Beauty should estimate a credence of: 0.333253
</pre>


=={{header|Factor}}==
=={{header|Factor}}==