diff options
Diffstat (limited to 'Assignment5/2a.py')
-rw-r--r-- | Assignment5/2a.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Assignment5/2a.py b/Assignment5/2a.py new file mode 100644 index 0000000..0b55cee --- /dev/null +++ b/Assignment5/2a.py @@ -0,0 +1,14 @@ +import random, hashlib, collections + +def duplicates(table): + return [key for key, values in table.items() if len(values) > 1] + +def hash(msg): # we use only the first 3 bytes, as a toy example + return hashlib.md5(str(msg).encode('utf-8')).digest()[:3] + +lookup = collections.defaultdict(list) # lookup table +while duplicates(lookup) == []: # as long as there are no duplicates + input = random.getrandbits(64) # 64 bits is sufficient to assume no input occurs twice + lookup[hash(input)].append(input) + +print(len(lookup))
\ No newline at end of file |