1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

誕生日攻撃: n 種類の値を出力するハッシュ関数の衝突までの試行回数の期待値は約 sqrt(π/2) sqrt(n)

Last updated at Posted at 2025-04-27

背景

「性質のよいハッシュ関数が $n$ 個の値を出力しえる場合、同じハッシュ値を取る $2$ つの値の組を発見する(衝突する)までの出力試行回数の期待値を求めよ」という問題を考えます。

IT用語辞典 e-Words には、以下のように記載されていますが、$1.25$ ってどこから来たねんという疑問があります。

あるハッシュ関数がH個の値を出力し得る場合、
平均で約1.25√Hの試行回数で同じハッシュ値を取る
2つの値の組を発見できることが知られている。

証明(ラマヌジャン降臨)

良いハッシュ関数が $n$ 種類の値を出力するとします。衝突が発生するまでの試行回数を表す確率変数 $X$ を考え、その期待値 $E[X]$ は、

\begin{align*}
E[X] &= \sum_{j=0}^{\infty} j \cdot P(X=j) \\
&= \sum_{k=0}^{\infty} P(X > k) \\
&= \sum_{k=0}^{n} \left( \frac{n}{n} \times \frac{n-1}{n} \times \frac{n-2}{n} \times \cdots \times \frac{n-k+1}{n} \right) \\
&= \sum_{k=0}^{n} \frac{n!}{ (n-k)! n^k } \\
&= 1 + \sum_{k=1}^{n} \frac{n!}{ (n-k)! n^k } \\
&= 1+Q(n) \\
&\sim 1 + \left( \sqrt{\frac{\pi n}{2}} - \frac{1}{3} + \frac{1}{12} \sqrt{\frac{\pi}{2n}} - \frac{4}{135 n} + \dots \right) \\
&= \sqrt{\frac{\pi n}{2}} + \frac{2}{3} + \frac{1}{12} \sqrt{\frac{\pi}{2n}} - \frac{4}{135 n} + \dots
\end{align*}

ここで $Q(n)$ はラマヌジャンのQ関数です。$n$ が大きい場合、期待値 $E[X]$ は $\displaystyle \sqrt{\frac{\pi n}{2}} \approx 1.253 \sqrt{n}$ に近い値をとります。

補遺

ラマヌジャンのQ関数

$$Q(n) = \sum_{k=1}^{n} \frac{n!}{ (n-k)! n^k }$$$n$ が大きいとき、次の漸近展開を持つことが知られています。$$Q(n) \sim \sqrt{\frac{\pi n}{2}} - \frac{1}{3} + \frac{1}{12} \sqrt{\frac{\pi}{2n}} - \frac{4}{135 n} + \dots$$

上記の漸近展開は、On Ramanujan's Q-function に高等な証明が乗っています。

本問題の証明について

  • この証明方法は、Wikipedia によると、Knuth, D. E. (1973). The Art of Computer Programming. Vol. 3, Sorting and Searching. に記載されていると言及されています。Vol. 3 を僕は持っておらず、第何版の何ページにどれくらいの厳密さで証明が乗っているのか、持っている人がいたら教えてほしいです。

  • Stack Exchange に高度な初等的な証明が載っています。

類似問題

「何人集まれば、同じ誕生日のペアがいる確率が $p$ を超えるか?」という問題の答えは、誕生日の種類数 $n$ が大きいとき約 $\sqrt{2 \ln (1/(1-p))} \sqrt{n}$ 人と近似されます。例えば $p=0.5$ の場合は約 $1.1774 \sqrt{n}$ となります。日本語での説明はこちら

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?