仅生成0和1的NxN矩阵

时间:2014-01-25 19:39:33

标签: matrix

我在这里尝试做的是生成一个完整的矩阵列表,其中NxN仅使用Java填充1和0

我知道当n越来越大时,这个列表应该是大量的矩阵。

我能想到的唯一方法是在for循环中的for循环中构建for循环......等等。

我不需要这个功能就可以在大量的n上工作,6就足够了。它在我的方法中是巨大的,需要36个循环来实现我的目标。

任何人都可以为我的问题找到一个聪明的解决方案吗?

ps.A递归函数可能会有所帮助,但我无法弄明白。

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助。

    private int[][] matrix; 
    public void CreateMatrix(int n)
    {
        this.matrix = new int[n][n](); //initialize a NxN 2D array
        createMatrixRow(0); //start filling from row 0
    }

    //start filling your matrix row by row
    public void createMatrixRow(int rowNumber)
    {
       if(rowNumber==n) //break the recursion when matrix is full
           return;
       for(int i = 0; i<n;i++)
       {
          //assign values in the matrix based on row & column numbers
          matrix[rowNumber][i] = generateValue(rowNumber, i);
       }

       createMatrixRow(rowNumber++); //recurse until your matrix is full
    }


    //Rules for generating values to be included here. I have written sample to generate identity matrix for identity matrix
    public int generateValue(int rowNumber, int columnNumber)
    {
       if(rowNumber == columnNumber)
          return 1;
       else 
          return 0
    }