Simple Hashfunktion für zwei Zahlen

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Benutzeravatar
microkernel
User
Beiträge: 271
Registriert: Mittwoch 10. Juni 2009, 17:27
Wohnort: Frankfurt
Kontaktdaten:

Moin,

kennt jemand zufällig eine einfache Hashfunktion die aus zwei Zahlen einen Hashwert generiert? Die Reihenfolge der Zahlen sollte nicht relevant sein. Also hash(x, y) == hash(y, x).
Ist das überhaupt möglich?

Lg
microkernel
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

x + y mod 10

Einfach, kommutativ und deterministisch .. hast du sonst noch Wuensche an die Funktion?
BlackJack

@cofi: Ich finde ja die 10 ein bisschen gross. Wenn man stattdessen die 1 nimmt, kann man das statt mit Division mit Bitverknüpfung lösen. :twisted:
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja mit 10 wirds nicht gerade handlich, Alternativen waeren natuerlich noch 5, 23 oder 42. ;) Die beiden letzten Werte sollte man natuerlich nur waehlen, wenn man grosses vor hat!
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

cofi hat geschrieben:x + y mod 10
Klammern :D

Code: Alles auswählen

(x + y) % 10
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Aber der SyntaxErrror bzw NameError stoert dich nicht? Das sollte doch klar sein, dass es ein mathematischer Ausdruck war 8) :roll:
Benutzeravatar
snafu
User
Beiträge: 6878
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Außerdem kann ich ohne `print` garkein Ergebnis sehen. :evil:
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

cofi hat geschrieben:Aber der SyntaxErrror bzw NameError stoert dich nicht? Das sollte doch klar sein, dass es ein mathematischer Ausdruck war 8) :roll:
Das kann nicht mathematisch sein. Mein Taschenrechner hat keine mod-Taste. :?
Antworten