Unikalny int do int hash

Jestem ciekawy, czy istnieje jakaś prosta i / lub dobrze znana metoda mieszania z następującymi właściwościami:

Przekształca 32-bitowy int w inny 32-bitowy intŻadne dwa nierównomierne wejścia nie dają tego samego wyjściaNie powinno być od razu oczywiste, patrząc na dane wyjściowe, że dwa wejścia były podobne (pod względem różnicy i maski bitowej), co oznacza, że ​​hash (a) i skrót (a + 1) powinny mieć znacznie różne wyniki, podobnie jak hash (a ) i hash (a & 0x100000). (Wyklucza to po prostu XORing z losową wartością.)

Podczas gdy takie systemy muszą oczywiście istnieć w teorii, czy są jakieś w praktyce?

questionAnswers(5)

yourAnswerToTheQuestion