Guest User

Untitled

a guest
Feb 19th, 2018
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <vector>
  5. #include <time.h>
  6. using namespace std;
  7.  
  8. class log{
  9. private:
  10. int *list;
  11. int k;
  12. public:
  13. log(int);
  14. ~log(){delete []list;}
  15. void add(int n){
  16. list[k++]=n;
  17. }
  18. void getprob(int n){
  19. float prob;
  20. int p=0;
  21. for(int i=0;i<k;i++)
  22. if(list[i]==n) p++;
  23. prob=(float)p/k;
  24. cout << "Probability of getting " << n << " is " << setprecision(4) << prob*100 << "%" << endl;
  25. }
  26. };
  27. log::log(int q){
  28. list=new int[q];
  29. k=0;
  30. }
  31. class die{
  32. private:
  33. float prob[6];
  34. float val;
  35. int pval;
  36. public:
  37. die();
  38. int throwdie();
  39. };
  40. die::die(){
  41. float w1,w2,w3,w4,w5,w6;
  42. cout << "Set the probabilities of sides:" << endl;
  43. cout << "1: ";
  44. cin >> w1;
  45. cout << "2: ";
  46. cin >> w2;
  47. cout << "3: ";
  48. cin >> w3;
  49. cout << "4: ";
  50. cin >> w4;
  51. cout << "5: ";
  52. cin >> w5;
  53. cout << "6: ";
  54. cin >> w6;
  55. prob[0]=w1;prob[1]=w1+w2;prob[2]=w1+w2+w3;prob[3]=w1+w2+w3+w4;prob[4]=w1+w2+w3+w4+w5;prob[5]=w1+w2+w3+w4+w5+w6;
  56. }
  57. int die::throwdie(){
  58. val=(float)rand()*prob[5]/RAND_MAX;
  59. for(int i=0;i<6;i++)
  60. if (val<=prob[i]){
  61. pval=i+1; break;
  62. }
  63. return pval;
  64. }
  65. int main(){
  66. srand(time(NULL));
  67. int q,v;
  68. die D;
  69. cout << "Enter the number of experiments: ";
  70. cin >> q;
  71. log L(q);
  72. for(int i=0;i<q;i++){
  73. v=D.throwdie();
  74. cout << v << endl;
  75. L.add(v);
  76. }
  77. for(int i=1;i<7;i++)
  78. L.getprob(i);
  79. cin.get();
  80. cin.get();
  81. return 0;
  82. }
Add Comment
Please, Sign In to add comment