Skip to content
Advertisement

Generate a deterministic random number from any number

From a number x, I want a function to get a random number y, uniformly distributed. For same x, the function should return same y.

I tried:

JavaScript

but apparently only the sequence of numbers provided by a seeded Random is uniformly distributed, not first values. Is this possible?

Advertisement

Answer

First, note that both int and float are 32bit datatypes in Java. So what you’re asking for is essentially a good hash function. If you want your random function to be 1:1, then this becomes a psuedomrandom permutation. So pick your favorite hash function and then reinterpret the bits as a float (not a cast)

JavaScript
User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement