#include<iostream>
#include<cstdlib>
#include<ctime>
#include<iomanip>
#include<vector>
#include<cmath>
#include<algorithm>
int main( ) {
std::cout << "enter seeding number: " ;
int num_seed = 0 ;
std::cin >> num_seed ;
srand( num_seed ) ;
std::cout << "enter numbers of tries: ";
int tries = 0 ;
std::cin >> tries ;
std::cout << "enter numbers of asterikes: ";
int asterikes = 0 ;
std::cin >> asterikes ;
double sum_of_three_dices , average_of_three_dices,sigme_dices_powered, variation, standard_dev = 0.0 ;
std::vector<size_t> vec_of_three_dice(19,0);
for(size_t i = 0; i < tries ; i++)
{
int dice_one = rand()%6 + 1 ;
int dice_two = rand()%6 + 1 ;
int dice_three = rand()%6 + 1 ;
vec_of_three_dice[dice_one + dice_two + dice_three] += 1 ;
sum_of_three_dices += dice_one + dice_two +dice_three ;
average_of_three_dices = sum_of_three_dices / tries ;
sigme_dices_powered += pow(dice_one + dice_two + dice_three ,2);
variation = sigme_dices_powered/tries - pow(average_of_three_dices,2);
standard_dev = sqrt(variation);
}
average_of_three_dices = sum_of_three_dices / tries ;
std::cout << "average_of_three_dices is: " <<std::fixed << std::setprecision(6) << average_of_three_dices << std::endl;
std::cout << "standard deviation is: " <<std::fixed << std::setprecision(6) << standard_dev << std::endl;
std::cout << std::endl;
int max_value = *max_element(vec_of_three_dice.begin(),vec_of_three_dice.end());
for(size_t i = 3; i <vec_of_three_dice.size() ; i ++ ){
if(i < 10 ){
std::cout <<std::setw(2) <<std::setfill(' ') << i<< " : " <<"("<<std::setw(4)<<std::setfill(' ')<<vec_of_three_dice.at(i) << ")" ;
}else{
std::cout << i << " : " <<"("<<std::setw(4)<<std::setfill(' ')<<vec_of_three_dice.at(i) << ")";
}
for(size_t j = 0; j <= static_cast<size_t>(vec_of_three_dice.at(i) * asterikes)/max_value ; j++ ){
std::cout << "*";
}
std::cout << std::endl;
}
return 0 ;
}