2014-01-25 84 views
0

我在這裏要做的是使用Java生成NxN只填充1和0的矩陣的完整列表。生成只有0和1的NxN矩陣

我知道這應該是這個列表中的大量矩陣,當n越來越大時。

我能想到的唯一方法是在for循環中的for循環內部構建for循環...等等。

我不需要這個函數在大量的n上工作,6就足夠了。我的方法非常龐大,需要36個循環來實現我的目標。

任何人都可以爲我的問題想出一個聰明的解決方案?

ps.遞歸函數可能有幫助,但我無法弄清楚它。

+0

n「nodes」??你的意思是它是NX? –

+0

遞歸:將下一個元素設置爲0,遞歸。之後,將相同的元素設置爲1,遞歸。並處理基本情況。而已。 –

+0

@KarolyHorvath耶,對不起,錯字:) – geasssos

回答

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 
    }