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

时间:2015-05-27 18:17:47

标签: java random

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

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

是否有办法修改该种子,以便随机数生成器的行为对于相同的种子是相同的,并保留数字的良好“混合”?我的意思是,我如何生成相同的数字来设置种子,使它们在这个间隔中均匀分布?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试这样做以确保数字是“随机的”,但均匀分布在[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);