#include #include "bruteforce2_prob.h" using namespace std; bigfloat bruteforce2_prob(const vector ¶ms,const vector &attackparams) { bigint n = params.at(0); bigint k = params.at(1); bigint w = params.at(2); bigint iters = attackparams.at(0); bigint successes = 0; for (bigint v = 0;v <= w;++v) { bigint binkv = binomial(k,v); iters -= binkv; successes += binkv*binomial(n-k,w-v); assert(iters >= 0); if (iters == 0) break; } assert(iters == 0); return bigfloat(successes)/bigfloat(binomial(n,w)); }