Mieszanie zestawu liczb całkowitych w sposób niezależny od kolejności

Chcę mieszać zestaw liczb całkowitych w taki sposób, że kolejność liczb całkowitych nie ma wpływu na obliczoną wartość skrótu. to znaczyH([32224,12232,564423]) == H([564423,32224,12232]).

Liczba unikalnych zestawów będzie się wahać w granicach kilku milionów. Prędkość jestbardzo ważne, ale muszę znać górną granicę kolizji z wybranym podejściem.

Wikipedia ma dobrą sekcjęwektory mieszające, ale nie rozumiem matematyki za tym, aby z ufnością wdrożyć je w kodzie. Byłbym wdzięczny, gdyby ktoś mógł wyjaśnić matematykę związaną z jakimś kodem. W idealnej sytuacji chciałbym, aby końcowy hash miał 32 bity. Jeśli jest to jakikolwiek użytek - wdrożę to w Javie.

Aktualizacja: Szczególnie staram się unikać sortowania liczb całkowitych w zestawie ze względu na wydajność (działa na wielu takich zestawach).

questionAnswers(5)

yourAnswerToTheQuestion