public BFOptions(long numberOfItems, float probabilityOfFalsePositives)
{
this.NumberOfItems = numberOfItems;
this.ProbabilityOfFalsePositives = probabilityOfFalsePositives;
double numberOfBits = Math.Ceiling(
(numberOfItems * Math.Log(probabilityOfFalsePositives)) /
Math.Log(1.0 / Math.Pow(2.0, Math.Log(2.0))));
this.NumberOfBits = (long)numberOfBits;
double numberOfHashes = Math.Round(Math.Log(2.0) * numberOfBits / numberOfItems);
this.NumberOfHashes = (int)numberOfHashes;
}