def choice(n, k):
ret = 1;
for i in range(k):
ret = ret * (n-i)
ret = ret / (i+1)
return ret
n_shards = 10000 / 100
nom = 0
for i in range(51, 101):
nom += choice(3000, i) * choice(7000, 100 - i)
den = choice(10000, 100)
print(nom, den)
print(1.0 * nom / den * n_shards)
CmRlZiBjaG9pY2Uobiwgayk6CiAgICByZXQgPSAxOwogICAgZm9yIGkgaW4gcmFuZ2Uoayk6CiAgICAgICAgcmV0ID0gcmV0ICogKG4taSkKICAgICAgICByZXQgPSByZXQgLyAoaSsxKQogICAgcmV0dXJuIHJldAoKbl9zaGFyZHMgPSAxMDAwMCAvIDEwMApub20gPSAwCgpmb3IgaSBpbiByYW5nZSg1MSwgMTAxKToKICAgIG5vbSArPSBjaG9pY2UoMzAwMCwgaSkgKiBjaG9pY2UoNzAwMCwgMTAwIC0gaSkKCmRlbiA9IGNob2ljZSgxMDAwMCwgMTAwKQoKcHJpbnQobm9tLCBkZW4pCgpwcmludCgxLjAgKiBub20gLyBkZW4gKiBuX3NoYXJkcykK