From 5d460aa79e48fa11444aff0e196e3121b548f861 Mon Sep 17 00:00:00 2001 From: Isidro Arias Date: Thu, 6 Apr 2023 14:31:19 +0200 Subject: [PATCH] descriptive name for m --- data_structures/hashing/bloom_filter.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/data_structures/hashing/bloom_filter.py b/data_structures/hashing/bloom_filter.py index 029d24a3e..1c13b382e 100644 --- a/data_structures/hashing/bloom_filter.py +++ b/data_structures/hashing/bloom_filter.py @@ -14,7 +14,7 @@ class Bloom: self.bitstring = 0b0 self.size = size - def add(self, value: str): + def add(self, value: str) -> None: h = self.hash_(value) self.bitstring |= h print( @@ -70,18 +70,18 @@ def random_string(size: int) -> str: return "".join(choices(ascii_lowercase + " ", k=size)) -def test_probability(m: int = 64, n: int = 20) -> None: - b = Bloom(size=m) +def test_probability(bits: int = 64, n: int = 20) -> None: + b = Bloom(size=bits) k = len(b.HASH_FUNCTIONS) - estimated_error_rate_beforehand = (1 - (1 - 1 / m) ** (k * n)) ** k + estimated_error_rate_beforehand = (1 - (1 - 1 / bits) ** (k * n)) ** k added = {random_string(10) for i in range(n)} for a in added: b.add(a) n_ones = bin(b.bitstring).count("1") - estimated_error_rate = (n_ones / m) ** k + estimated_error_rate = (n_ones / bits) ** k not_added = {random_string(10) for i in range(1000)} errors = 0