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?