如何在Java中从随机中获取种子?
2022-09-01 11:42:01
我正在为某些对象创建深度克隆。该对象包含一个 .Random
从 中检索种子是否为好做法?如果是这样,如何?没有 .Random
Random.getSeed()
我正在为某些对象创建深度克隆。该对象包含一个 .Random
从 中检索种子是否为好做法?如果是这样,如何?没有 .Random
Random.getSeed()
获取种子的一种更简单的方法是生成一个种子并将其存储为种子。我正在将这种方法用于游戏,并希望让玩家选择生成完全相同的世界,如果他也愿意的话。因此,首先,我创建一个没有种子的 Random 对象,然后让该对象生成一个随机数,并在另一个随机对象中将其用作种子。每当玩家想要关卡的种子时,我都会把它存储在某个地方。默认情况下,游戏仍然是随机的。
Random rand = new Random();
//Store a random seed
long seed = rand.nextLong();
//Set the Random object seed
rand.setSeed(seed);
//do random stuff...
//Wonder what the seed is to reproduce something?
System.out.println(seed);
您可以做的是自己获取系统时间,然后用它来设定随机数生成器的种子,并将其存储在某个地方或打印出来,以便以后可以使用它。
long rgenseed = System.currentTimeMillis();
Random rgen = new Random();
rgen.setSeed(rgenseed);
System.out.println("Random number generator seed is " + rgenseed);