java填充2维数组,随机0和1

时间:2011-11-29 02:22:35

标签: java arrays math

我想知道你是否可以使用Math.random方法生成随机0和1?

我需要填充一个二维数组,使它基本上像一个迷宫,1是路径,0是墙。

4 个答案:

答案 0 :(得分:2)

随机路径的迷宫不再是一个有效的迷宫!迷宫中的路径是固定的,而不是随机的,尽管它们似乎是!比如说,

enter image description here

以上是一个有效的迷宫,但一旦路径是随机的,它就不再是一个有效的迷宫!(下图)

enter image description here

以下是maze generation codes的一些示例供您参考。

答案 1 :(得分:1)

正如我在评论中所提到的,如果你试图生成迷宫,我认为你不想随意。相反,请看一下这里的一些算法:

http://en.wikipedia.org/wiki/Maze_generation_algorithm

答案 2 :(得分:1)

是的,您可以使用以下方法生成随机0和1:

Random r = new Random( );
int[][] maze = ...
...
maze[x][y] = r.nextInt(2);
// or, equivalently, maze[x][y] = r.nextBoolean( ) ? 1 : 0;

然而,这不太可能产生一个非常好的迷宫。正如乔纳森所说,迷宫有结构(即完全随机),你需要一个像样的迷宫构造算法。

答案 3 :(得分:1)

这样的事情应该有效:

int n = 10;
int[][] maze = new int[n][n];
Random rand = new Random();

for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
        maze[i][j] = rand.nextInt(2);

虽然我同意这些评论,但这不会给你很好的迷宫......