Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <iomanip>
- #include <vector>
- #include <time.h>
- using namespace std;
- class log{
- private:
- int *list;
- int k;
- public:
- log(int);
- ~log(){delete []list;}
- void add(int n){
- list[k++]=n;
- }
- void getprob(int n){
- float prob;
- int p=0;
- for(int i=0;i<k;i++)
- if(list[i]==n) p++;
- prob=(float)p/k;
- cout << "Probability of getting " << n << " is " << setprecision(4) << prob*100 << "%" << endl;
- }
- };
- log::log(int q){
- list=new int[q];
- k=0;
- }
- class die{
- private:
- float prob[6];
- float val;
- int pval;
- public:
- die();
- int throwdie();
- };
- die::die(){
- float w1,w2,w3,w4,w5,w6;
- cout << "Set the probabilities of sides:" << endl;
- cout << "1: ";
- cin >> w1;
- cout << "2: ";
- cin >> w2;
- cout << "3: ";
- cin >> w3;
- cout << "4: ";
- cin >> w4;
- cout << "5: ";
- cin >> w5;
- cout << "6: ";
- cin >> w6;
- 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;
- }
- int die::throwdie(){
- val=(float)rand()*prob[5]/RAND_MAX;
- for(int i=0;i<6;i++)
- if (val<=prob[i]){
- pval=i+1; break;
- }
- return pval;
- }
- int main(){
- srand(time(NULL));
- int q,v;
- die D;
- cout << "Enter the number of experiments: ";
- cin >> q;
- log L(q);
- for(int i=0;i<q;i++){
- v=D.throwdie();
- cout << v << endl;
- L.add(v);
- }
- for(int i=1;i<7;i++)
- L.getprob(i);
- cin.get();
- cin.get();
- return 0;
- }
Add Comment
Please, Sign In to add comment