<?php
/*
$hashes_picked = 100;
$single_collision_odds = 50000;
# safe_combinations is number of ways to pick hashes that don't overlap
$safe_combinations = gmp_fact($single_collision_odds) / gmp_fact($single_collision_odds - $hashes_picked);
# all_combinations is total number of ways to pick hashes
$all_combinations = $single_collision_odds ^ $hashes_picked;
$collision_chance = ($all_combinations - $safe_combinations) / $all_combinations;
print_r(get_defined_vars());
*/
function bp($n, $d) {
$v = 1.0;
for ($i=1; $i <= $n; $i++) {
$v = $v * (1 - ((float) $i) / $d);
}
return 1 - $v;
}
$bp = bp(2, 50000);
var_dump($bp);