Given a hash function H, it's possible that H(a) = H(b) = c
Let's assume we have a big data set [N1 ... Nk], with K items and we hash each item in this set
After operation is done, we'd get a set of hashes [H1 ... Hm] where m < k, meaning we had collisions
What would be the most memory-efficient way(without storing all of hashes and hashed items) to determine if we've ever hashed item X before and if we did, did it collide with anything?
Is it even possible to relax memory constrains on such kind of task?