如何在二维数组中选择一个随机元素

时间:2012-01-06 15:37:10

标签: arrays random 2d element

好的我想在2d数组中选择一个随机点,以便可以填充它。我已经看过如何为1d数组做这个,我想知道如何在2d数组中实现这一点。我所看到的关于这种方法的是,同样的位置再次出现,这是一个小问题,但我不知道如何做到这一点。 2d阵列本质上是一个网格,其尺寸为x和y坐标。并且随机元素选择边界内的一个点(用户选择但是出于此问题的目的,可以是30x50。

编辑:

  import java.util.Random;
class pickRand{
public static String get (int x, int y){
    int rndx = generator.nextInt(x) + 2;
    int rndy = generator.nextInt(y) + 2;


}
}

这样做会有效,x和y将对应于用户生成的数字,并且两边都有一个凸起的边界,以防止任何对象进入(部分在网格之外或者网格之外。没有什么需要返回吗?

2 个答案:

答案 0 :(得分:3)

如果网格大小为M by N

  • 0 and M-1 i
  • 之间生成一个随机数
  • 0 and N-1 j
  • 之间生成另一​​个随机数

(i,j)将是2d数组的随机元素

答案 1 :(得分:0)

数组在这里扮演什么角色?

基本上,任务是选择...... 随机整数2D坐标

因此,如果您需要两个坐标,例如i中的0...W-1j中的0...H-1,则只需绘制两个随机整数。如果您需要更多更高的维度,请绘制更多的randoms。

显然,您可以访问array[i][j]

在大多数语言中,数组可以是不规则的,即行/列可以具有不同的长度。然而,这对处理......同样微不足道。