Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <vector>
  3.  
  4. const int NTries = 1000000;
  5. vector<char> rolls;
  6.  
  7. char roll() {
  8. return rand()%6 + 1;
  9. }
  10.  
  11. char check() {
  12. const int N = rolls.size();
  13. const char r1 = rolls[N-3];
  14. const char r2 = rolls[N-2];
  15. const char r3 = rolls[N-1];
  16. if(r1 == r2 || r2 == r3 || r3 == r1) return 0;
  17. if(r1 < r2 && r2 < r3) return 1;
  18. if(r1 < r3 && r3 < r2) return 2;
  19. if(r2 < r1 && r1 < r3) return 3;
  20. if(r2 < r3 && r3 < r1) return 4;
  21. if(r3 < r1 && r1 < r2) return 5;
  22. if(r3 < r2 && r2 < r1) return 6;
  23. }
  24.  
  25. int main(){
  26. double avg = 0;
  27. double prob[7] = {0};
  28.  
  29. for ( int nTries = 1; nTries <= NTries; nTries++) {
  30. rolls.clear();
  31. rolls.push_back( roll() );
  32. rolls.push_back( roll() );
  33. char ch = 0;
  34. while (ch == 0) {
  35. rolls.push_back( roll() );
  36. ch = check();
  37. }
  38. avg = (avg*(nTries-1) + rolls.size())/nTries;
  39. prob[ch]++;
  40. }
  41.  
  42.  
  43. cout << "Avg = " << avg << endl;
  44. for(int i = 1; i <= 6; i++) {
  45. prob[i] /= NTries;
  46. cout << "prob[" << i << "] = " << prob[i] << endl;
  47. }
  48. return 1;
  49. }
  50.  
  51. Avg = 4.00243
  52. prob[1] = 0.166725
  53. prob[2] = 0.166508
  54. prob[3] = 0.166607
  55. prob[4] = 0.166534
  56. prob[5] = 0.166988
  57. prob[6] = 0.166638
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement