Um júnior me fez uma pergunta de entrevista em Java antes, mas as perguntas não eram difíceis. Implemente o triângulo Yang Hui com Java. Levei algum tempo para resolver isso e achei bastante interessante, então eu queria escrever e compartilhá -lo. Antes de escrever o código, vamos primeiro esclarecer as duas perguntas a seguir.
O que é Yang Hui Triangle
O triângulo de Yang Hui é um arranjo geométrico de coeficientes binomiais em um triângulo. Foi mencionado na "Explicação detalhada do algoritmo de nove capítulos", escrito por Yang Hui, um matemático da dinastia canção do sul do meu país em 1261. Na Europa, é chamado de Triângulo Pascal, como mostrado na figura.
Triângulo Yang Hui
A lei do triângulo de Yang Hui é o princípio
1. Cada número é igual à soma dos dois números acima dele.
2. Cada linha de números é simétrica esquerda e direita e gradualmente se torna maior de 1.
3. O número na linha n possui n Termos.
4. A soma dos números de linha N-és é 2N-1.
5. O número de m na enésima linha pode ser expresso como C (N-1, M-1), ou seja, o número de combinações de elementos M-1 retirados de elementos diferentes N-1.
6. O número MTH na linha n é igual ao número n-m+1, que é uma das propriedades do número combinado.
7. Cada número é igual à soma dos números esquerdo e direito da linha anterior. Esta propriedade pode ser usada para escrever todo o triângulo Yang Hui. Ou seja, o número de I-és na linha n+1 é igual à soma do número I-1th e ao número I-és na linha n, que também é uma das propriedades do número combinado. Isto é, c (n+1, i) = c (n, i)+c (n, i-1).
8. Os coeficientes na fórmula de expansão de (a+b) n correspondem a cada item na linha (n+1) do triângulo Yang hui por sua vez.
9. Conecte o primeiro número na linha 2n+1, com o terceiro número na linha 2n+2, o quinto número na linha 2n+3, e a soma desses números é o número 4n+1 fibonacci; Transfira o segundo número na linha 2N-1 (n> 1), com o quarto número na linha 2N-2 e o sexto número na linha 2N-2 ... A soma desses números é o número 4N-2 Fibonacci.
10. Organize os números em cada linha e você poderá obter o N-1 de 11 (n é o número de linhas) Poder: 1 = 11^0; 11 = 11^1; 121 = 11^2 ... Quando n> 5, não atenderá a esta propriedade. Nesse momento, o número mais à direita "1" na enésima linha deve ser colocado no único dígito e, em seguida, alinhar o único dígito de um número à esquerda a dez dígitos ...... e assim por diante, preencha o espaço vazio com "0" e depois adicione todos os números, e o número obtido é exatamente a potência N-1 de 11. 1,10,45,120.210.252,210,120,45,10,1, e o resultado é 25937424601 = 1110.
Depois de entender esses dois pontos, nosso pensamento se torna muito claro. Existem muitas maneiras de implementá-lo, aqui pretendo usar uma matriz bidimensional, além de um duplo para o loop implementá-lo.
Código de demonstração:
classe pública yanghui {public static void main (string [] args) {// crie uma matriz bidimensional int t [] [] = new int [10] []; // atravessa a primeira camada da matriz bidimensional para (int i = 0; i <t.Length; i ++) {// inicialize o tamanho da segunda matriz de camadas t [i] = new int [i+1]; // atravessa a segunda matriz de camadas para (int j = 0; j <= i; j ++) {// atribui os elementos da matriz nos dois lados a 1 if (i == 0 || j == 0 || j == i) {t [i] [j] = 1; } else {// outros valores são calculados pela fórmula t [i] [j] = t [i-1] [j]+t [i-1] [j-1]; } // O elemento de matriz de saída System.out.print (t [i] [j]+"/t"); } // line break System.out.println (); }}}Os resultados da saída no console são os seguintes:
Apenas dez linhas do triângulo Yang Hui são emitidas aqui. Otimize -o e pode ser alterado para obter dinamicamente o número de linhas. Também pode ser transformado em um triângulo positivo, basta adicionar um loop para calcular o espaço. Os alunos interessados podem experimentar. ― Do programador Java 18th-Line
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.