Java 随机的好种子 - 构建迷宫

Good seed for Java random - Constructing a Maze

我正在尝试编写一个程序来构建迷宫(Java 中的经典练习),我想用我的方法来生成迷宫以接收随机数生成器的种子,该随机数生成器用于生成这个。这是必需的,因为我希望每次输入相同的种子时程序都生成相同的迷宫。 但是,对于某些种子值,更多的值看起来比其他值具有更大的概率。

我的意思是,假设我用给定的种子设置了一个随机对象,并使用它来生成 [0, 4) 之间的整数,并将其用作构建迷宫的标准。生成的序列非常有特色,迷宫太容易了。我只是不设置任何种子,生成了一个很好的迷宫。 整数部分只是一个例子。我可以使用制服并将其划分为 4 个区域:[0, 0,25), [0,25, 0.5), [0.5, 0.75), [0.75, 1)

有没有办法修改该种子,使随机数生成器的行为对于同一种子相同并保持数字的良好 "mixture"?我的意思是,我怎样才能生成相同的数字来设置种子,使它们在这个间隔内均匀分布?

谢谢!

您可以尝试这样做以确保数字是 'random',但均匀分布在 [0, 1)、[1, 2)、[2, 3) 和 [3, 4] 上:

Random random = new Random(seed);
int count = 200; // or another number, just how many you need
List<Float> numbers = new ArrayList<Float>(count);
for (int i = 0; i < count; i++) {
    numbers.add(random.nextFloat() + (i % 4));
}
Collections.shuffle(numbers);