2010-05-04 6 views
5

Bitte helfen Sie den Geburtstags-Effekt zu interpretieren, wie in Wikipedia beschrieben:Kann jemand bitte den Geburtstagseffekt für mich klären?

Ein Geburtstag Angriff funktioniert wie folgt:

  1. jede Nachricht m-Auswahl und berechnen h (m).
  2. Liste aktualisieren L. Prüfen, ob h (m) in der Liste L ist.
  3. Wenn (h (m), m) bereits in L ist, wurde ein kollidierendes Nachrichtenpaar gefunden. sonst das Paar (h (m), m) speichert in der Liste L und gehen Sie zurück 1.en

Vom Geburtstagsparadoxon zu Schritt wissen wir, dass wir einen passenden Eintrag finden erwarten können, nach der Durchführung über 2^(n/2) Hash-Bewertungen.

funktioniert das obige Mittelwert 2^(n/2) Iterationen durch die obige gesamte Schleife (dh 2^(n/2) kehrt zu Schritt 1), OR bedeutet es 2^(n/2) Vergleiche zu einzelnen Gegenständen bereits in L?

+0

Hash-Auswertungen. wie in "compute h (m)" in Schritt 1 – amphetamachine

+0

oh richtig, Hash-Bewertung würde bedeuten, einen Hash für eine Nachricht zu berechnen, danke. – Mark

+0

Können Sie den von Ihnen zitierten Wikipedia-Link angeben? Ich sehe diesen Text dort nicht. –

Antwort

4

Es bedeutet 2^(n/2) Iterationen durch die Schleife. Beachten Sie jedoch, dass L hier keine normale Liste ist, sondern eine Hashtabellenzuordnung h(m) zu m. Somit würde jede Iteration nur eine konstante Anzahl (O (1)) von Vergleichen im Durchschnitt benötigen, und es würde insgesamt O (2^(n/2)) Vergleiche geben.

Wenn L ein normales Array oder eine verknüpfte Liste gewesen wäre, wäre die Anzahl der Vergleiche viel größer, da Sie jede Iteration durch die gesamte Liste durchsuchen müssen. Dies wäre jedoch eine schlechte Möglichkeit, diesen Algorithmus zu implementieren.

+0

nur eine andere Sache in Bezug auf Stack-Überlauf - soll ich den Status irgendwie von Mitgliedern hier aktualisieren, die meine Fragen beantworten. Wenn ja, wie wird das gemacht? – Mark

+1

@Mark: Wenn du eine Antwort magst, kannst du sie aktualisieren (klicke auf den Pfeil nach oben links von der Antwort). Wenn eine Antwort Ihr Problem löst, können Sie es akzeptieren - klicken Sie auf das Häkchen links neben der Antwort. –

+0

Nun, es sieht so aus, als müsste ich mich registrieren, um das zu tun. – Mark

Verwandte Themen