3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); function nulles($max) { $x = []; for ($i = 1; $i < $max; ++$i) { $md5 = md5((string)$i); $cnt = 0; for ($md_i = 0; $md_i < 32; ++$md_i) { if ($md5[$md_i] !== '0') { break; } ++$cnt; } $x[$cnt] = 1 + ($x[$cnt] ?? 0); } return [$max => $x]; } function raspred($x) { $result = []; foreach ($x as $max => $res) { foreach ($res as $zeros => $count) { $result["от 1 до $max"]["md5 имеет $zeros нулей в начале"] = '1/' . round( $max / $count, 3 ) . ' или ' . round($count / $max * 100, 2) . '%'; } } return $result; } foreach ( [ 5000, 10000, 50000, 100000, 500000, 1000000, 10000000, ] as $size ) { var_dump(raspred(nulles($size))); }

preferences:
94.62 ms | 406 KiB | 5 Q