Un junior me hizo una pregunta de entrevista de Java antes, pero las preguntas no eran difíciles. Implemente el triángulo Yang Hui con Java. Me tomé un tiempo para resolverlo y descubrí que era bastante interesante, así que quería escribirlo y compartirlo. Antes de escribir código, primero aclaremos las siguientes dos preguntas.
¿Qué es el triángulo Yang Hui?
El triángulo de Yang Hui es una disposición geométrica de coeficientes binomiales en un triángulo. Se mencionó en la "Explicación detallada del algoritmo de nueve capítulos" escrito por Yang Hui, un matemático de la dinastía de la canción del sur en mi país en 1261. En Europa, se llama Triángulo Pascal, como se muestra en la figura.
Yang Hui Triangle
La ley del triángulo de Yang Hui es el principio
1. Cada número es igual a la suma de los dos números por encima de él.
2. Cada fila de números es simétrica izquierda y derecha, y gradualmente se hace más grande a partir de 1.
3. El número en la línea n tiene n términos.
4. La suma de los números de línea n-th es 2n-1.
5. El número de m en la enésima fila se puede expresar como C (N-1, M-1), es decir, el número de combinaciones de elementos M-1 tomados de los elementos N-1 diferentes.
6. El número MTH en la línea N es igual al número N-M+1, que es una de las propiedades del número combinado.
7. Cada número es igual a la suma de los números izquierdo y derecho de la línea anterior. Esta propiedad se puede usar para escribir todo el triángulo Yang Hui. Es decir, el número I-Th en la línea N+1 es igual a la suma del número I-1th y el número I-Th en la línea N, que también es una de las propiedades del número combinado. Es decir, c (n+1, i) = c (n, i)+c (n, i-1).
8. Los coeficientes en la fórmula de expansión de (a+b) n corresponden a cada elemento en la línea (n+1) del triángulo Yang hui a su vez.
9. Conecte el primer número en la línea 2n+1, con el tercer número en la línea 2n+2, el quinto número en la línea 2n+3, y la suma de estos números es el número 4N+1 Fibonacci; Transfiera el segundo número en la línea 2n-1 (n> 1), con el cuarto número en la línea 2n-2, y el sexto número en la línea 2n-2 ... la suma de estos números es el número 4N-2 Fibonacci.
10. Organice los números en cada fila y puede obtener el N-1 de 11 (n es el número de filas) potencia: 1 = 11^0; 11 = 11^1; 121 = 11^2 ... Cuando n> 5, no cumplirá con esta propiedad. En este momento, el número más a la derecha "1" en la décima línea debe colocarse en un solo dígito, y luego alinear el único dígito de un número en la izquierda a diez dígitos ......, y así sucesivamente, llene el espacio vacío con "0", y luego agregue todos los números, y el número obtenido es exactamente a la potencia N-1 de 11. Tomando n = 11 como ejemplo, el número de la undécima fila: 1,10,45,120,210,252,210,120,45,10,1, y el resultado es 25937424601 = 1110.
Después de comprender estos dos puntos, nuestro pensamiento se vuelve muy claro. Hay muchas maneras de implementarlo, aquí planeo usar una matriz bidimensional más un doble para loop para implementarlo.
Código de demostración:
clase pública yanghui {public static void main (string [] args) {// crea una matriz bidimensional int t [] [] = new int [10] []; // atraviesa la primera capa de la matriz bidimensional para (int i = 0; i <t.length; i ++) {// inicializa el tamaño de la matriz de la segunda capa t [i] = new int [i+1]; // atraviesa la matriz de la segunda capa para (int j = 0; j <= i; j ++) {// asigna los elementos de matriz en ambos lados a 1 if (i == 0 || j == 0 || j == i) {t [i] [j] = 1; } else {// Otros valores se calculan mediante la fórmula t [i] [j] = t [i-1] [j]+t [i-1] [j-1]; } // Elemento de matriz de salida System.out.print (t [i] [j]+"/t"); } // Line Break System.out.println (); }}}Los resultados de salida en la consola son los siguientes:
Aquí solo se emiten diez filas de Yang Hui Triangle. Optimizarlo y se puede cambiar para obtener dinámicamente el número de filas. También se puede convertir en un triángulo positivo, solo agregue un bucle para calcular el espacio. Los estudiantes interesados pueden probarlo. "De Java 18 ° programador
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.