如何在Java中随机填充数组?
我正在写一个程序,用整数n创建一个2D数组。然后我必须用从1到nn数组大小的值填充数组,并检查它是否是幻方。我现在的做法是按从1到nn数组大小的顺序填充数组。我怎样才能使之随机 我的代码:如何在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
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.:)