Hash-Kollisionswahrscheinlichkeit: Vom Geburtstagsparadoxon zu Näherungswerten

2025-06-25
Hash-Kollisionswahrscheinlichkeit: Vom Geburtstagsparadoxon zu Näherungswerten

Dieser Artikel untersucht eingehend die Wahrscheinlichkeit von Hash-Kollisionen. Hash-Funktionen bilden beliebig komplexe Eingaben auf einzelne Zahlen ab, aber es besteht das Risiko von Hash-Kollisionen (verschiedene Eingaben, die auf dieselbe Zahl abgebildet werden). Ausgehend vom Geburtstagsparadoxon erklärt der Artikel die exakte Formel zur Berechnung der Hash-Kollisionswahrscheinlichkeit und drei Näherungsmethoden: exponentielle Näherung, vereinfachte Näherung und eine noch weiter vereinfachte Näherung. Im Vergleich schneidet die exponentielle Näherung in den meisten Fällen am besten ab, während die beiden anderen Methoden besser für schnelle Schätzungen geeignet sind. Der Artikel liefert auch mathematische Beweise zur Unterstützung der Näherungsmethoden.

Mehr lesen
Entwicklung Geburtstagsparadoxon

Livecoding von Grafiken in Common Lisp: Entwicklung eines Boids-Programms ohne Neustart

2025-04-23
Livecoding von Grafiken in Common Lisp: Entwicklung eines Boids-Programms ohne Neustart

Dieser Artikel demonstriert Livecoding in Common Lisp für die Grafikprogrammierung, wobei der Boids-Algorithmus als Beispiel dient. Die leistungsstarke Rekompilierungsfunktion von Common Lisp ermöglicht die Codeänderung und sofortige Wirkung während der Programmausführung, wodurch ein Neustart überflüssig wird. Der Autor verwendet das Grafik-Framework Sketch, implementiert schrittweise den Boids-Algorithmus und zeigt den effizienten Entwicklungsprozess, der durch Livecoding ermöglicht wird. Durch Codeänderungen und die Beobachtung der Echtzeiteffekte wird der Kern des Boids-Algorithmus, einschließlich der Regeln für Trennung, Kohäsion und Ausrichtung, implementiert, was zu einer Maus-folgenden Boids-Simulation führt. Livecoding verbessert die Effizienz und Interaktivität der Entwicklung erheblich.

Mehr lesen
Entwicklung Boids-Algorithmus