#include<iostream>
#include<random>
#include<chrono>
int main(){
const unsigned MAX_RESULTS = 1000000;
const unsigned LIMIT = 300;
int buckets[30]={0};
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::mt19937 die(seed);
unsigned n_results = 0;
while(n_results<MAX_RESULTS){
unsigned sum = 0;
while( (sum+=(1+die()%30))<LIMIT);
buckets[sum-LIMIT]++;
n_results++;
}
for(unsigned i = 0; i<30; i++){
std::cout<<LIMIT+i<<":\t"<< buckets[i]*30.0/MAX_RESULTS << std::endl;
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAojaW5jbHVkZTxyYW5kb20+CiNpbmNsdWRlPGNocm9ubz4KCmludCBtYWluKCl7CiAgICBjb25zdCB1bnNpZ25lZCBNQVhfUkVTVUxUUyA9IDEwMDAwMDA7CiAgICBjb25zdCB1bnNpZ25lZCBMSU1JVCA9IDMwMDsKICAgIGludCBidWNrZXRzWzMwXT17MH07CgogICAgdW5zaWduZWQgc2VlZCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpOwogICAgc3RkOjptdDE5OTM3IGRpZShzZWVkKTsKICAgIHVuc2lnbmVkIG5fcmVzdWx0cyA9IDA7CiAgICB3aGlsZShuX3Jlc3VsdHM8TUFYX1JFU1VMVFMpewogICAgICAgIHVuc2lnbmVkIHN1bSA9IDA7CiAgICAgICAgd2hpbGUoIChzdW0rPSgxK2RpZSgpJTMwKSk8TElNSVQpOwogICAgICAgIGJ1Y2tldHNbc3VtLUxJTUlUXSsrOwogICAgICAgIG5fcmVzdWx0cysrOwogICAgfQoKICAgIGZvcih1bnNpZ25lZCBpID0gMDsgaTwzMDsgaSsrKXsKICAgICAgICBzdGQ6OmNvdXQ8PExJTUlUK2k8PCI6XHQiPDwgYnVja2V0c1tpXSozMC4wL01BWF9SRVNVTFRTIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==