首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 多維數組經典案例:拉丁方陣與楊輝三角生成算法

     編輯:Java 相關知識

6.6 多維數組使用示例:從數學規律到代碼實現

多維數組實戰核心在於**結構設計**:確定維度、長度、存儲規則、值語義。先思考再編碼,事半功倍。

6.6.1 拉丁方陣:模運算的優雅應用

需求:任意階 n 的拉丁矩陣存儲與輸出

4階示例:
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3

規律發現

元素值 = (行號 + 列號 + 1),超過 n 取模:data = (row + col + 1) % n == 0 ? n : (row + col + 1) % n

完整代碼

int n = 6;
int[][] arr = new int[n][n];
for (int row = 0; row < arr.length; row++) {
    for (int col = 0; col < arr[row].length; col++) {
        int data = row + col + 1;
        arr[row][col] = (data <= n) ? data : data % n;
    }
}
// 輸出
for (int[] rowArr : arr) {
    for (int val : rowArr) System.out.print(val + " ");
    System.out.println();
}

核心技巧:將二維座標映射為數值規律,利用模運算實現循環特性。

6.6.2 楊輝三角:動態規劃的鼻祖

需求:10 行楊輝三角存儲與輸出

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

規律定義

  • 第 1 列全為 1
  • 其餘元素 = 左上 + 正上:arr[row][col] = arr[row-1][col-1] + arr[row-1][col]

完整代碼

int[][] arr = new int[10][10];
for (int row = 0; row < arr.length; row++) {
    for (int col = 0; col <= row; col++) {
        if (col == 0) arr[row][col] = 1;
        else arr[row][col] = arr[row-1][col] + arr[row-1][col-1];
    }
}
// 輸出三角形狀
for (int row = 0; row < arr.length; row++) {
    for (int col = 0; col <= row; col++) 
        System.out.print(arr[row][col] + " ");
    System.out.println();
}

關鍵點

  • 第二維長度隨行號變化(不規則數組)
  • 下標邊界控制:col <= row 而非 col < length
  • 體現**最優子結構**思想,是動態規劃的直觀教學案例

設計多維數組的四步法

  1. 確定維度數
  2. 確定每維長度(固定/動態)
  3. 定義存儲規則與值語義
  4. 按規則實現賦值與遍歷邏輯

觀察數字規律、轉化為程序邏輯,是程序員必備基本功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved