Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays - Fatal编程技术网

如何在Java中随机填充数组?

如何在Java中随机填充数组?,java,arrays,Java,Arrays,我正在写一个程序,用整数n创建一个2D数组。然后我必须用从1到nn数组大小的值填充数组,并检查它是否是幻方。我现在的做法是按从1到nn数组大小的顺序填充数组。我怎样才能使之随机 我的代码: System.out.print(“输入整数:”); int n=scan.nextInt(); int[]magic=新的int[n][n]; for(int row=0;row

我正在写一个程序,用整数n创建一个2D数组。然后我必须用从1到nn数组大小的值填充数组,并检查它是否是幻方。我现在的做法是按从1到nn数组大小的顺序填充数组。我怎样才能使之随机

我的代码:

System.out.print(“输入整数:”);
int n=scan.nextInt();
int[]magic=新的int[n][n];
for(int row=0;row
您需要输入这些值。您可以先洗牌每一行,然后洗牌每一列,但我建议您将所有值放在一个大的n*n 1D数组中,然后洗牌,然后填充2D数组。

您需要修改这些值。您可以先洗牌每一行,然后洗牌每一列,但我建议您将所有值放在一个大的n*n 1D数组中,然后洗牌,然后填充2D数组。

创建一个数字的洗牌列表以添加到数组中,类似这样:

 List<Integer> numbers = new ArrayList<Integer>();
 for (int i=1; i<=n*n; i++) numbers.add(i);
 Collections.shuffle(numbers);

 int [][] magic = new int [n][n];

 int index = 0;
 for (int row = 0; row < magic.length; row++)
 {
    for(int col = 0; col < magic[row].length; col++)
        magic[row][col] = numbers.get(index++);
 }
List number=new ArrayList();

对于(int i=1;i创建一个无序的数字列表以添加到数组中,如下所示:

 List<Integer> numbers = new ArrayList<Integer>();
 for (int i=1; i<=n*n; i++) numbers.add(i);
 Collections.shuffle(numbers);

 int [][] magic = new int [n][n];

 int index = 0;
 for (int row = 0; row < magic.length; row++)
 {
    for(int col = 0; col < magic[row].length; col++)
        magic[row][col] = numbers.get(index++);
 }
List number=new ArrayList();

对于(int i=1;i创建0到n*n-1的值的随机平方矩阵:

System.out.print("Enter an whole number: ");
int n = scan.nextInt();
int size = n * n;

// create see dvalues
List<Integer> values = new ArrayList<Integer>(size);
for (int i=0; i<size; i++) {
  values.add(i);
}
Collections.shuffle(values);

// now create the magic square
int[][] magic = new int[n][];
int index = 0;
for (int i=0; i<n; i++) {
  magic[i] = new int[n];
  for (int j=0; j<n; j++) {
    values.get(index++);
  }
}
System.out.print(“输入整数:”);
int n=scan.nextInt();
int size=n*n;
//创建see-dvalues
列表值=新的ArrayList(大小);

对于(int i=0;i创建0到n*n-1的值的随机平方矩阵:

System.out.print("Enter an whole number: ");
int n = scan.nextInt();
int size = n * n;

// create see dvalues
List<Integer> values = new ArrayList<Integer>(size);
for (int i=0; i<size; i++) {
  values.add(i);
}
Collections.shuffle(values);

// now create the magic square
int[][] magic = new int[n][];
int index = 0;
for (int i=0; i<n; i++) {
  magic[i] = new int[n];
  for (int j=0; j<n; j++) {
    values.get(index++);
  }
}
System.out.print(“输入整数:”);
int n=scan.nextInt();
int size=n*n;
//创建see-dvalues
列表值=新的ArrayList(大小);

对于(int i=0;iCollections.shuffle将帮助您以一种简单的方式完成这一壮举。@卢克:我可能就是这么做的。在int值数组上使用整数对象集合只需要很少的开销,因此绝对值得。另一方面,每个人都应该在一个时间内实现一个适当的洗牌算法ir的生活只是为了教育目的。:)Collections.shuffle将以一种简单的方式帮助您完成这一壮举。@Luke:我可能就是这么做的。在int值数组上使用整型对象集合只需要很少的开销,所以绝对值得。另一方面,每个人一生中都应该实现一次适当的洗牌算法用于教育目的的st.:)