A Bloom filter answers "have I seen this?" using tiny space — at the cost of false positives. Each key is run through k hash functions that flip k bits in a shared array. To check membership you test those same bits: any bit still 0 means definitely not present; all 1 means possibly present. It never says no when the answer is yes — but it can say yes when the answer is no.
Try this: hit add sample set, then 🎯 find a false positive — it searches for a word you never added whose k bits all happen to be set by other words, and the filter reports possibly present. That's the whole trade: a Bloom filter can't have false negatives (if you added it, all its bits are 1, so it always reports present), but it can have false positives as the bit array fills up. Raise m (more bits) or tune k and watch the estimated error rate drop. Real uses: a database skipping disk reads for keys that are "definitely not here", a CDN/cache, or a browser checking URLs against a huge blocklist without storing it all.