Un junior m'a déjà posé une question d'entrevue Java, mais les questions n'étaient pas difficiles. Implémentez le triangle Yang Hui avec Java. J'ai pris le temps de le régler et j'ai trouvé que c'était assez intéressant, donc je voulais l'écrire et le partager. Avant d'écrire du code, clarifions d'abord les deux questions suivantes.
Qu'est-ce que le triangle Yang Hui
Le triangle de Yang Hui est un arrangement géométrique des coefficients binomiaux dans un triangle. Il a été mentionné dans "l'explication détaillée de l'algorithme de neuf chapitres" écrite par Yang Hui, mathématicien de la dynastie des chansons sud dans mon pays en 1261. En Europe, elle s'appelle le triangle Pascal, comme le montre la figure.
Triangle de Yang Hui
La loi du triangle de Yang Hui est le principe
1. Chaque nombre est égal à la somme des deux nombres au-dessus.
2. Chaque rangée de nombres est symétrique à gauche et à droite, et devient progressivement plus important de 1.
3. Le nombre en ligne n a n termes.
4. La somme des numéros de ligne N-TH est 2N-1.
5. Le nombre de m dans la nième rangée peut être exprimé en C (N-1, M-1), c'est-à-dire le nombre de combinaisons d'éléments M-1 tirés d'éléments différents N-1.
6. Le nombre de MTH en ligne n est égal au nombre n-m + 1, qui est l'une des propriétés du nombre combiné.
7. Chaque nombre est égal à la somme des nombres gauche et droit de la ligne précédente. Cette propriété peut être utilisée pour écrire l'intégralité du triangle Yang Hui. C'est-à-dire que le numéro du I-TH en ligne N + 1 est égal à la somme du numéro I-1e et du numéro du i-tth en ligne n, qui est également l'une des propriétés du nombre combiné. C'est-à-dire C (n + 1, i) = c (n, i) + c (n, i-1).
8. Les coefficients de la formule d'expansion de (a + b) n correspondent à chaque élément de la ligne (n + 1) du triangle Yang Hui à tour à tour.
9. Connectez le premier nombre en ligne 2n + 1, avec le troisième nombre en ligne 2n + 2, le cinquième nombre en ligne 2n + 3, et la somme de ces nombres est le numéro 4n + 1 Fibonacci; Transférer le deuxième numéro en ligne 2N-1 (n> 1), avec le quatrième numéro en ligne 2N-2, et le sixième numéro en ligne 2N-2 ... La somme de ces nombres est le numéro Fibonacci 4n-2.
10. Disposez les nombres dans chaque ligne et vous pouvez obtenir le N-1 de 11 (n est le nombre de lignes) Power: 1 = 11 ^ 0; 11 = 11 ^ 1; 121 = 11 ^ 2 ... Lorsque n> 5, il ne rencontrera pas cette propriété. À l'heure actuelle, le numéro le plus à droite "1" sur la nième ligne doit être placé dans le chiffre unique, puis aligner le chiffre unique d'un nombre à gauche à dix chiffres ......, et ainsi de suite, remplissez l'espace vide avec "0", puis ajouter tous les nombres, et le nombre obtenu est exactement à la puissance N-1 de 11. Prendre n = 11 comme exemple, le nombre de la haute rangée est: 1,10,45,120,210,252,210,120,45,10,1, et le résultat est 25937424601 = 1110.
Après avoir compris ces deux points, notre pensée devient très claire. Il existe de nombreuses façons de l'implémenter, ici, je prévois d'utiliser un tableau bidimensionnel plus un double pour Loop pour l'implémenter.
Code de démonstration:
classe publique yanghui {public static void main (String [] args) {// Créer un tableau bidimensionnel int t [] [] = new int [10] []; // traverse la première couche du tableau bidimensionnel pour (int i = 0; i <t.length; i ++) {// initialiser la taille du tableau de deuxième couche T [i] = new int [i + 1]; // traverse le deuxième tableau de couche pour (int j = 0; j <= i; j ++) {// attribue les éléments du tableau des deux côtés à 1 if (i == 0 || j == 0 || j == i) {t [i] [j] = 1; } else {// D'autres valeurs sont calculées par la formule t [i] [j] = t [i-1] [j] + t [i-1] [j-1]; } // élément de tableau de sortie System.out.print (t [i] [j] + "/ t"); } // Line Break System.out.println (); }}}Les résultats de sortie dans la console sont les suivants:
Seules dix rangées de triangle Yang Hui sont sorties ici. L'optimiser et peut être modifié pour obtenir dynamiquement le nombre de lignes. Il peut également être transformé en un triangle positif, il suffit d'ajouter une boucle pour calculer l'espace. Les étudiants intéressés peuvent l'essayer. - - du programmeur de 18e ligne Java
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.