#include <random>
#include <vector>
#include <algorithm>
#include <iostream>
#include <iomanip>
int const width = 30;
int const samples = 50000;
double const stretch = 20.;
int main(int argc, char * argv[])
{
std::mt19937 gen;
std::normal_distribution<> dist(0.8, 0.2);
std::vector<unsigned> hist(width);
for(size_t i = 0; i < samples; ++i)
{
int v = dist(gen) * stretch;
if(v > 0. && v < width)
++hist[v];
}
int fakt = *std::max_element(hist.begin(), hist.end()) / width;
for(size_t i = 0; i < width; ++i)
std::cout << std::setw(4) << i / stretch << ": " << std::string(hist[i] / fakt, '*') << '\n';
}
I2luY2x1ZGUgPHJhbmRvbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCmludCBjb25zdCB3aWR0aCA9IDMwOwppbnQgY29uc3Qgc2FtcGxlcyA9IDUwMDAwOwpkb3VibGUgY29uc3Qgc3RyZXRjaCA9IDIwLjsKCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CglzdGQ6Om10MTk5MzcgZ2VuOwoJc3RkOjpub3JtYWxfZGlzdHJpYnV0aW9uPD4gZGlzdCgwLjgsIDAuMik7CgoJc3RkOjp2ZWN0b3I8dW5zaWduZWQ+IGhpc3Qod2lkdGgpOwoKCWZvcihzaXplX3QgaSA9IDA7IGkgPCBzYW1wbGVzOyArK2kpCgl7CgkJaW50IHYgPSBkaXN0KGdlbikgKiBzdHJldGNoOwoJCWlmKHYgPiAwLiAmJiB2IDwgd2lkdGgpCgkJCSsraGlzdFt2XTsKCX0KCglpbnQgZmFrdCA9ICpzdGQ6Om1heF9lbGVtZW50KGhpc3QuYmVnaW4oKSwgaGlzdC5lbmQoKSkgLyB3aWR0aDsKCglmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgd2lkdGg7ICsraSkKCQlzdGQ6OmNvdXQgPDwgc3RkOjpzZXR3KDQpIDw8IGkgLyBzdHJldGNoIDw8ICI6ICIgPDwgc3RkOjpzdHJpbmcoaGlzdFtpXSAvIGZha3QsICcqJykgPDwgJ1xuJzsKfQoK