Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何生成多维数组的随机地址?_Java_Collections - Fatal编程技术网

Java 如何生成多维数组的随机地址?

Java 如何生成多维数组的随机地址?,java,collections,Java,Collections,我卡住了,请帮帮我 矩阵的大小为n和m 对于eg- n=4,m=3 1,2,3,4 5,6,7,8 9,10,11,12 如何生成随机地址 对于eg-(0,0),(1,1),(1,2),(2,2),(3,3) ->最后一个地址应表示矩阵的结束元素。 ->下一个地址应该是向右或向下的元素的地址 Random random = new Random(); List<Integer> list = new ArrayList<>(); int rando

我卡住了,请帮帮我

矩阵的大小为n和m

对于eg-
n=4,m=3
1,2,3,4
5,6,7,8
9,10,11,12

如何生成随机地址

对于eg-(0,0),(1,1),(1,2),(2,2),(3,3)
->最后一个地址应表示矩阵的结束元素。
->下一个地址应该是向右或向下的元素的地址

    Random random = new Random();
    List<Integer> list = new ArrayList<>();
    int random_int_1 = 0, random_int_2 = 0;
    int i = 0;
    list.add(2);
    list.add(1);
    while (list.get(i) < list.get(i + 1)) {
        list.add(random_int_1 = random.nextInt(5));
        list.add(random_int_2 = random.nextInt(5));
        i++;
    }
    for (int j = 0; j < list.size() - 1; j++) {
        if (list.get(j) < list.get(j + 1)) System.out.print(list.get(j));
    }
Random Random=new Random();
列表=新的ArrayList();
int random_int_1=0,random_int_2=0;
int i=0;
增加(2);
增加第(1)款;
while(list.get(i)
我正在通过解决这些例子来提高我的技能
请告诉我如何解决这些问题。

给你一些待办事项好的,我会尽力帮你的。 根据您的示例,您有一个当前点,从那里开始,代码应该随机地左右移动该点。我对“要么移动,要么同时移动”的问题仍然有点模糊,但这并不是那么重要,在第2步和第3步,你可以定义一些逻辑来始终执行其中一个,或者执行其中一个或两个。(现在有可能点不动了!想想看!)

您的算法应该执行以下操作:

  • 确定currentpoint是否位于矩阵的边缘(位置m=3,n=4不能移动)
  • 如果可以向右移动,则创建一个随机的0或1。如果0什么也不做,如果1向右移动
  • 如果可以向下移动,则创建一个随机的0或1。如果0不执行任何操作,如果1向下移动
  • 将位置附加到列表并更新当前位置,转到步骤1

  • 您可以通过循环或递归算法来实现这一点。希望你能用这些待办事项来解决这个问题:)

    到目前为止你做了哪些尝试?请给出一个代码示例,即使它的行为与预期不符;列表=新的ArrayList();int random_int_1=0,random_int_2=0;int i=0;增加(2);增加第(1)款;while(list.get)(i)如果你想通过自己解决问题来提高你的技能,为什么要让我们来解决它们?你指定下一个元素应该是正确的或错误的。在你的例子中,你不这样做,你从2,2到3,3…你到底是什么意思?这是一个有趣的问题,我收回了我的投票