블룸 필터 계산기: 크기·해시 수·오탐률
목표 오탐률에서 n개 항목을 담을 블룸 필터 크기를 구하거나, 주어진 필터의 오탐률·용량을 최적 해시 함수 수와 함께 계산합니다.
통상적인 식은 9,585,059비트, 해시 7개를 주지만 실제 오탐률은 1.004%로 목표를 넘습니다. 7,896비트를 더하면 도달합니다.
채워질수록 달라지는 오탐률
| 적재율 | 항목 수 | 오탐률 |
|---|---|---|
| 25% | 250,000 | 3.585e-6 |
| 50% | 500,000 | 0.02495% |
| 75% | 750,000 | 0.2363% |
| 100% | 1,000,000 | 1.000% |
| 125% | 1,250,000 | 2.745% |
| 150% | 1,500,000 | 5.770% |
| 200% | 2,000,000 | 15.71% |
60자리 mpmath 계산과 실제 블룸 필터 시뮬레이션(5시그마)으로 확인했습니다. 모두 브라우저에서 실행됩니다.
사용법
- 구할 값을 고릅니다: 필터 크기, 오탐률, 용량.
- 알고 있는 값을 입력합니다. 항목 수는 1000000·1e6·1M, 오탐률은 0.01·1%·1e-6·'1 in 1000', 크기는 단위와 함께 입력하고, k를 비우면 최적 해시 수를 씁니다.
- 결과와 적재 표를 확인합니다. 설계 용량의 25%~200%에서의 오탐률을 보여 줍니다.
자세한 설명
펼치기접기
블룸 필터는 '이걸 본 적 있나?'에 고정된 비트 수로 답하며, 가끔 거짓 양성이 있지만 거짓 음성은 없습니다. 동작은 비트 수 m, 해시 함수 수 k, 넣은 항목 수 n 세 값으로 정해지며, 이 계산기는 빠진 값을 구합니다. 목표 오탐률에서 n개를 담는 가장 작은 필터, 주어진 크기의 필터가 갖게 될 오탐률, 오탐률을 넘기 전까지 들어가는 항목 수입니다. 오탐률은 표준식 (1 − e^(−kn/m))^k이며 1e-300 같은 작은 목표에서도 정밀도를 유지하도록 계산합니다. 대부분의 계산기는 연속식 −n·ln p / ln²2로 크기를 정한 뒤 k를 정수로 반올림해 목표를 살짝 넘깁니다. 4,000개를 1e-7로 잡으면 134,191비트, 해시 23개, 실제 오탐률 1.0006e-7이 됩니다. 이 도구는 최적 정수 k로 실제 목표를 만족하는 가장 작은 m(여기서는 134,196비트)을 찾고, 통상적인 답이 모자라면 알려 줍니다. k를 비우면 최적 정수 값을 쓰고, 고정하면 구현의 해시 수가 치르는 비용을 볼 수 있습니다. 적재 표는 설계 용량을 넘어 채울 때 오탐률이 어떻게 오르는지 보여 줍니다. 1% 필터를 설계치의 두 배로 채우면 16%에 가까워집니다. 이 식은 독립적이고 균일한 해시 함수를 가정합니다. h1 + i·h2로 두 해시를 조합하는 방식(Kirsch–Mitzenmacher)은 실제로 충분히 가깝지만, 약한 해시나 상관된 키는 여기 수치보다 나쁩니다. 표시되는 메모리는 비트 배열만이며 특정 라이브러리의 부가 구조는 포함하지 않습니다. 카운팅·확장형 블룸 필터는 더 많이 필요합니다.
자주 묻는 질문
해시 함수는 몇 개가 적당한가요?
m비트와 n개 항목에서 오탐률은 k = (m/n)·ln 2일 때 가장 낮으며, 항목당 비트 수의 약 0.7배입니다. 1% 필터는 7개, 0.1%는 10개입니다. k는 정수여야 하므로 양옆의 정수를 모두 확인해 더 나은 쪽을 택합니다.
다른 계산기보다 크기가 약간 큰 이유는?
다른 계산기는 크기를 정한 뒤 k를 반올림하는데, 반올림한 k는 보통 목표를 조금 넘깁니다. 이 계산기는 정수 해시 수로 실제로 목표에 도달하는 최소 비트 수를 돌려주며, 통상적인 값이 모자라면 그 값과 실제 오탐률을 함께 보여 줍니다.
계획보다 많은 항목을 넣으면?
망가지지는 않지만 오탐률이 빠르게 오릅니다. 적재 표에 나오듯 n개 기준 1%로 만든 필터는 1.5n에서 약 6%, 2n에서 약 16%가 됩니다. 늘어날 가능성이 있다면 더 큰 수로 설계하거나 확장형 블룸 필터를 쓰세요.
블룸 필터에서 항목을 삭제할 수 있나요?
일반 블룸 필터는 안 됩니다. 비트를 지우면 그 비트를 공유하는 다른 항목도 사라질 수 있습니다. 카운팅 블룸 필터는 비트 대신 작은 카운터를 써서 삭제를 허용하지만 메모리가 몇 배 듭니다. 쿠쿠 필터도 대안입니다.
이 수치는 얼마나 정확한가요?
오탐률 식은 이상적인 해시를 가정한 표준 근사입니다. 수백 비트 이상인 필터에서는 실측 오탐률과 표본 오차 범위 안에서 일치하며, 여기서도 그렇게 확인했습니다. 나쁜 해시 함수나 구조적으로 충돌하는 키에 대해서는 알려 주지 못합니다.
관련 도구
데이터 전송 속도 변환기
전송 속도를 bit/s·kbit/s·Mbit/s·Gbit/s·Tbit/s와 B/s·kB/s·MB/s·GB/s·TB/s 사이에서 한 번에 변환합니다.
변환
A/B 테스트 계산기 (유의성·표본 크기)
두 전환율을 비교해 p값, 상승률, Wilson·Newcombe 구간, 표본 비율 불일치 검사, 다음 테스트에 필요한 표본 크기를 구합니다.
수학·통계
내 화면 해상도 확인 (모니터·주사율·배율)
지금 쓰는 모니터나 휴대폰의 화면 해상도, 실제 픽셀 수, 배율(devicePixelRatio), 브라우저 창 크기, 주사율(Hz), 색 깊이·HDR 지원을 바로 보여 줍니다.
일상
GIF 구조 분석기
GIF 파일의 블록 구조를 그대로 읽어 프레임 지연과 폐기 방식, 반복 설정, 팔레트, 투명도, 프레임별 실제 바이트 비용까지 보여줍니다.
이미지
JSON 스키마 검사기
JSON 문서를 JSON 스키마로 브라우저에서 검사합니다. 오류마다 JSON 포인터, 문서에서의 줄 번호, 실패한 키워드를 보여줍니다.
개발
xxHash·MurmurHash3·FNV·SipHash 계산기
텍스트, 16진 바이트, 파일의 xxHash32/64, MurmurHash3(32·128비트), FNV-1/FNV-1a(32·64비트), SipHash-2-4를 시드와 키로 계산합니다.
개발