#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;
}