Quick actions

cmd+k|ctrl+k

Navigation

Languages

WenhaoCui_6153876930_HW1_Q2

Snippet info

Language

Cpp

Visibility

public

Author

chriscui14

Created

2020-05-28T05:24:47Z

Updated

2020-05-31T20:30:20Z

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;

void printStars(int n) {
  for(int i=0;i < n;i++) {
    cout << "*";
  }
  cout << endl;
}/// printStars()

void uniformDistribution(int N = 1000000){
    double a[10]={0,0,0,0,0,0,0,0,0,0};
    srand(time(NULL));
    for(int i=0;i<N; i++){
        double r = ((double)rand())/RAND_MAX;
        int n = floor(r*10);
        switch (n){
        case 0:
            a[0]++;
            break;
        case 1:
            a[1]++;
            break;
        case 2:
            a[2]++;
            break;
        case 3:
            a[3]++;
            break;
        case 4:
            a[4]++;
            break;
        case 5:
            a[5]++;
            break;
        case 6:
            a[6]++;
            break;
        case 7:
            a[7]++;
            break;
        case 8:
            a[8]++;
            break;
        case 9:
            a[9]++;
            break;
        default:
            a[9]++;
            break;
        }
    }
    for(int i=0; i<10; i++){
        int nAsterisks = floor(100 * a[i]/N);
        printStars(nAsterisks);
    }
}

void triangularDistribution(int N = 1000000){
    double a[10]={0,0,0,0,0,0,0,0,0,0};
    srand(time(NULL));
    for(int i=0;i<N; i++){
        double r1 = ((double)rand())/RAND_MAX;
        double r2 = ((double)rand())/RAND_MAX;
        double r = 0.5*(r1+r2);
        int n = floor(r*10);
        switch (n){
        case 0:
            a[0]++;
            break;
        case 1:
            a[1]++;
            break;
        case 2:
            a[2]++;
            break;
        case 3:
            a[3]++;
            break;
        case 4:
            a[4]++;
            break;
        case 5:
            a[5]++;
            break;
        case 6:
            a[6]++;
            break;
        case 7:
            a[7]++;
            break;
        case 8:
            a[8]++;
            break;
        case 9:
            a[9]++;
            break;
        default:
            a[9]++;
            break;
        }
    }
    for(int i=0; i<10; i++){
        int nAsterisks = floor(100 * a[i]/N);
        printStars(nAsterisks);
    }
}

int main() {
    uniformDistribution(1000000);
    cout << endl;
    triangularDistribution(1000000);
    return 0;
}
INFO