Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <vector>
- const int NTries = 1000000;
- vector<char> rolls;
- char roll() {
- return rand()%6 + 1;
- }
- char check() {
- const int N = rolls.size();
- const char r1 = rolls[N-3];
- const char r2 = rolls[N-2];
- const char r3 = rolls[N-1];
- if(r1 == r2 || r2 == r3 || r3 == r1) return 0;
- if(r1 < r2 && r2 < r3) return 1;
- if(r1 < r3 && r3 < r2) return 2;
- if(r2 < r1 && r1 < r3) return 3;
- if(r2 < r3 && r3 < r1) return 4;
- if(r3 < r1 && r1 < r2) return 5;
- if(r3 < r2 && r2 < r1) return 6;
- }
- int main(){
- double avg = 0;
- double prob[7] = {0};
- for ( int nTries = 1; nTries <= NTries; nTries++) {
- rolls.clear();
- rolls.push_back( roll() );
- rolls.push_back( roll() );
- char ch = 0;
- while (ch == 0) {
- rolls.push_back( roll() );
- ch = check();
- }
- avg = (avg*(nTries-1) + rolls.size())/nTries;
- prob[ch]++;
- }
- cout << "Avg = " << avg << endl;
- for(int i = 1; i <= 6; i++) {
- prob[i] /= NTries;
- cout << "prob[" << i << "] = " << prob[i] << endl;
- }
- return 1;
- }
- Avg = 4.00243
- prob[1] = 0.166725
- prob[2] = 0.166508
- prob[3] = 0.166607
- prob[4] = 0.166534
- prob[5] = 0.166988
- prob[6] = 0.166638
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement