0

I want to generate same sent of random number when a fixed seed is given. For that, I have found some classes from nd4j documentation. But the generated random number is different. What can be the reason and how to achieve same set of random numbers as default random generator of java yields?

        java.util.Random origRand = new java.util.Random();
        org.nd4j.linalg.api.rng.DefaultRandom nd4jRand = Nd4j.getRandom();
        org.nd4j.linalg.api.rng.DefaultRandom nd4jRand2 = new DefaultRandom();

        origRand.setSeed(givenSeed);
        nd4jRand.setSeed(givenSeed);
        nd4jRand2.setSeed(givenSeed);

        System.out.println(origRand.nextFloat()+"\t"+origRand2.nextFloat()+"\t"+nd4jRand.nextFloat()+"\t"+nd4jRand2.nextFloat());

//output:  0.73043025   0.3941323   0.7713206
foobar
  • 571
  • 1
  • 5
  • 20

1 Answers1

1

There's no way existing way to generate the same numbers as Java RNG returns. Nd4j and Java use different algorithms for random numbers generation.

raver119
  • 336
  • 1
  • 5