Java se da cuenta del triángulo de Yang Hui

Java se da cuenta del triángulo de Yang Hui

1. Principio

El triángulo de Pascal, también conocido como triángulo de Pascal, es un triángulo de números que se caracteriza porque cada número es la suma de los dos números que están encima de él. El triángulo lleva el nombre del matemático francés Blaise Pascal y del matemático chino Yang Hui.

El principio del triángulo de Yang Hui se puede explicar mediante los siguientes pasos:

  1. La primera fila tiene solo un número 1.
  2. La segunda línea tiene dos números 1.
  3. A partir de la tercera fila, el primer número y el último número de cada fila son 1. El número del medio es la suma de los dos números adyacentes de la fila anterior. Por ejemplo, el número del medio en la tercera fila se obtiene sumando el primer número 1 y el segundo número 1 en la fila anterior, y el resultado es 2.
  4. El número de números en cada fila es 1 más que la fila anterior.

Mediante esta regla, el triángulo Yanghui se puede construir fila por fila. Los números de cada fila se pueden representar mediante números combinados. Por ejemplo, el número nde la fila se puede expresar como , donde representa el número de fila y la posición del número en la fila.kC(n-1, k-1)nk

El triángulo de Yang Hui se usa ampliamente en combinatoria, teoría de probabilidad, álgebra y otros campos, y sus propiedades y leyes se estudian y aplican ampliamente para resolver diversos problemas matemáticos.

2. Implementación del código

//n 是杨辉三角形的行数
public void yanghui(int n) {
    
    
    //创建列不固定的二维数组
    int[][] arr = new int[n][];
    for (int i = 0; i < n; i++) {
    
    
        //每一行的数字个数
        arr[i] = new int[i + 1];

        for (int j = 0; j < i + 1; j++) {
    
    
            //第一个和最后一个数字为 1
            //其他数字为上一行相邻的两个数字之和
            if (j == 0 || j == i) {
    
    
                arr[i][j] = 1;
            } else {
    
    
                arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
            }
        }
    }

    //打印杨辉三角形
    System.out.println("杨辉三角形前 " + n + " 行数据如下:");
    for (int i = 0; i < n; i++) {
    
    
        for (int j = 0; j < i + 1; j++) {
    
    
            System.out.printf(arr[i][j] + "\t");
        }
        System.out.println();
    }
}
  • Complejidad del tiempo: el bucle para llenar la matriz debe ejecutarse n*(n+1)/2varias veces y el bucle para imprimir la matriz debe ejecutarse n*(n+1)/2varias veces. Por lo tanto, la complejidad del tiempo total es O(n^2).
  • Complejidad espacial: arrla complejidad espacial de la matriz bidimensional es O(n^2), que se utiliza para almacenar los números del triángulo Yang Hui.

3. Resultados de ejecución

杨辉三角形前 10 行数据如下:
1
1       1
1       2       1
1       3       3       1
1       4       6       4       1
1       5       10      10      5       1
1       6       15      20      15      6       1
1       7       21      35      35      21      7       1
1       8       28      56      70      56      28      8       1
1       9       36      84      126     126     84      36      9       1

Supongo que te gusta

Origin blog.csdn.net/qq_45256357/article/details/131960685
Recomendado
Clasificación