WenhaoCui_6153876930_HW1_Q2
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
#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;
}
Cpp
INFO