Я думаю, что вы упускаете часть решения; Чтобы полностью избежать ложных срабатываний, вам все равно придется отслеживать, какие из них были выполнены, и по существу использовать фильтр Блума в качестве ярлыка, чтобы определить, что тест определенно не был выполнен.
Тем не менее, поскольку вы заранее знаете количество тестов, вы можете настроить фильтр таким образом, чтобы обеспечить приемлемый уровень ошибок, используя некоторые известные формулы; для вероятности возврата ложного положительного результата в 1% вам потребуется ~ 9,5 бит / запись, поэтому для одного миллиона записей достаточно 1,2 мегабайта. Если уменьшить допустимую частоту ошибок до 0,1%, это увеличится только до 1,8 МБ.
Статья в Википедии Bloom Filters дает отличный анализ и интересный обзор математики.