# Bloom Filters - This might be my longest tutorial!

**URL:** <https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601>\
**Category:** random\
**Created:** [March 5, 2025, 3:45am UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601 "2025-03-05T03:45:48Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [March 5, 2025, 3:45am UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601/1 "2025-03-05T03:45:48Z")

</div>

My latest article is on Bloom Filters:

> **[Bloom Filter: A Deep Dive](https://www.kirupa.com/data_structures_algorithms/bloom_filter.htm)**
>
> Learn how to quickly check if a value exists in a ridiculously large collection of data by using the world's favorite little probabilistic data structure, the Bloom filter.

This is one of those things that started off with the goal of keeping things simple but gradually got more complex as I decided to explain more and MORE things. I think the final length of this is around 25 pages (with images), which by itself is around 5% the total length of my book on Algorithms! 😱

---

<div class="post-metadata">

**Author:** ![Wayne](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/wayne/32/16501_2.png) [@Wayne](https://forum.kirupa.com/u/Wayne)\
**Post date:** [March 10, 2025, 8:10pm UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601/2 "2025-03-10T20:10:28Z")

</div>

Do you have data on how many people read most articles based on the amount of words? You might need to consider making YouTube video tutorials for large articles?

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [March 10, 2025, 11:36pm UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601/3 "2025-03-10T23:36:03Z")

</div>

I think if you are skimming for an answer, the longer tutorials aren’t going to help. If you are trying to learn something in-depth, then the longer tutorials are just what you are looking for. I do tend to optimize for the second group.

As for the videos, that is usually the plan. I do have videos for almost all of my longer articles, but they do lag by a few weeks depending on how busy I am 🙂

---

<div class="post-metadata">

**Author:** ![mflanagan](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mflanagan](https://forum.kirupa.com/u/mflanagan)\
**Post date:** [March 16, 2025, 6:39pm UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601/4 "2025-03-16T18:39:21Z")

</div>

Great article. I had one question, though, and it probably reflects my lack of understanding. You say, " 1. **Too few hash functions** : The bit array will be under-utilized, leading to lower collision rates but higher false negative rates as fewer bits are set." I thought that bloom filters had _no_ false negatives. Is it that too few hash functions also increase false _positives_, for the reason you state (under-utilization of bit array…too many collisions)?

---

<div class="post-metadata">

**Author:** ![kirupa](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/kirupa/32/11616_2.png) [@kirupa](https://forum.kirupa.com/u/kirupa)\
**Post date:** [March 16, 2025, 9:13pm UTC](https://forum.kirupa.com/t/bloom-filters-this-might-be-my-longest-tutorial/673601/5 "2025-03-16T21:13:12Z")

</div>

Hi @mflanagan - thanks for catching an error in what I wrote. You are not lacking understanding 🙂

The correct statement should be that _too few hash functions will indeed lead to a higher false **positive** rate_.

I rewrote the explanation to be more clear and accurate.
