Android 如何制作组合随机数矩阵

Android 如何制作组合随机数矩阵,android,algorithm,Android,Algorithm,我很难弄明白如何生成一个从1到8的重复两次的随机数,并使其成为如下矩阵: 5 8 2 5 3641 7 6 2 3 4 7 8 1 顺便说一句,我计划在android上做这个 提前谢谢 你真正想要的不是随机数。而是一组随机排列的特定数字 因此,以升序从所需的集合开始 int[] mySet = Array{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8} 然后做一些类似的事情 for (x = 1;99,x++) { from = (int

我很难弄明白如何生成一个从1到8的重复两次的随机数,并使其成为如下矩阵:

5 8 2 5

3641

7 6 2 3

4 7 8 1

顺便说一句,我计划在android上做这个


提前谢谢

你真正想要的不是随机数。而是一组随机排列的特定数字

因此,以升序从所需的集合开始

int[] mySet = Array{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8}
然后做一些类似的事情

for (x = 1;99,x++) {
    from = (int)(Math.random()*8);
    to = (int)(Math.random()*8);
    if (from != to) {
       int swap = mySet[to];
       mySet[to] = mySet[from];
       mySet[from] = swap;
    }
}

你真正想要的不是随机数。而是一组随机排列的特定数字

因此,以升序从所需的集合开始

int[] mySet = Array{1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8}
然后做一些类似的事情

for (x = 1;99,x++) {
    from = (int)(Math.random()*8);
    to = (int)(Math.random()*8);
    if (from != to) {
       int swap = mySet[to];
       mySet[to] = mySet[from];
       mySet[from] = swap;
    }
}

我假设你想要一个包含所有数字1-8的随机4x4矩阵两次

您可以轻松地将16个数字的列表转换为4x4矩阵。所以你们需要的是1-8个数字的随机列表

List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= 8; i++) {
  list.add(i);
  list.add(i);
}
// list  = [1,1,2,2,3,3,..,8,8];
Collections.shuffle(list);
// gives something like [1,4,5,2,4,7,..8,1]
List List=new ArrayList();

对于(int i=1;i我假设您想要一个包含所有数字1-8的随机4x4矩阵两次

您可以轻松地将16个数字的列表转换为4x4矩阵,所以您需要的是1-8个数字的随机列表

List<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= 8; i++) {
  list.add(i);
  list.add(i);
}
// list  = [1,1,2,2,3,3,..,8,8];
Collections.shuffle(list);
// gives something like [1,4,5,2,4,7,..8,1]
List List=new ArrayList();

对于(int i=1;我哈哈,我很抱歉你还没明白。谢谢你的帮助。哈哈,我很抱歉你还没明白。谢谢你的帮助。我不敢相信这样的事情会这么简单。我的脑子有点紧张。谢谢你的帮助。你明白了。我不敢相信这样的事情会这么简单。我的脑子很紧张爸爸压力很大。谢谢你的帮助。你明白了。