#include <iostream>
#include <random>
using namespace std;
int main()
{
double a = 0, b = 0, c = 0;
for( unsigned long long x = 1; x < 100000000000000ULL; x *= 10 )
{
std::mt19937 generator;
std::uniform_real_distribution<double> distribution( 0, 10000.0 / x );
unsigned found = 0;
for ( unsigned i = 0; i < 10000; ++i )
{
a = distribution(generator);
b = distribution(generator);
c = distribution(generator);
if ( ( (a + b ) + c ) != ( a + ( b + c ) ) )
{
++found;
}
}
cout << 0 << " : " << ( 10000.0 / x ) << "\t" << found << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmFuZG9tPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7Cglkb3VibGUgYSA9IDAsIGIgPSAwLCBjID0gMDsKCglmb3IoIHVuc2lnbmVkIGxvbmcgbG9uZyB4ID0gMTsgeCA8IDEwMDAwMDAwMDAwMDAwMFVMTDsgeCAqPSAxMCApCgl7CgkJc3RkOjptdDE5OTM3IGdlbmVyYXRvcjsKCQlzdGQ6OnVuaWZvcm1fcmVhbF9kaXN0cmlidXRpb248ZG91YmxlPiBkaXN0cmlidXRpb24oIDAsIDEwMDAwLjAgLyB4ICk7CgkJdW5zaWduZWQgZm91bmQgPSAwOwoJCWZvciAoIHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwMDA7ICsraSApCgkJewoJCQlhID0gZGlzdHJpYnV0aW9uKGdlbmVyYXRvcik7IAoJCQliID0gZGlzdHJpYnV0aW9uKGdlbmVyYXRvcik7IAoJCQljID0gZGlzdHJpYnV0aW9uKGdlbmVyYXRvcik7IAoJCQlpZiAoICggKGEgKyBiICkgKyBjICkgIT0gKCBhICsgKCBiICsgYyApICkgKQoJCQl7CgkJCQkrK2ZvdW5kOwoJCQl9CgkJfQoKCQljb3V0IDw8IDAgPDwgIiA6ICIgPDwgKCAxMDAwMC4wIC8geCApIDw8ICJcdCIgPDwgZm91bmQgPDwgZW5kbDsKCX0KCglyZXR1cm4gMDsKfQ==