Triangle Pascal
Un triangle de Pascal (ou triangle arithmétique) est un arrangement triangulaire des coefficients binomiaux. Il a été nommé en l'honneur de Blaise Pascal, bien qu'il ait été étudié bien avant lui dans diverses cultures.
Voici tout d'abord un exemple d'une classe permettant d'afficher un triangle arithmétique progressif de style Pascal écrit en Free Pascal :
on obtiendra le résultat suivant :
00 1
0 2 4
0 3 6 9
0 4 8 12 16
0 5 10 15 20 25
0 6 12 18 24 30 36
0 7 14 21 28 35 42 49
0 8 16 24 32 40 48 56 64
0 9 18 27 36 45 54 63 72 81
< x *
< x x x *
< x x x x x *
< x x x x x x x *
< x x x x x x x x x *
< x x x x x x x x x x x *
< x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x x x x x x x x x *
< x x x x x x x x x x x x x x x x x x x x x x x x x *
Le première exemple permet d'imaginer comment construire un triangle de nombre, mais il ne respect pas les règles imaginés par Blaise Pascal. Ainsi, le triangle est construit de la manière suivante :
- Le sommet du triangle (première ligne) contient un seul 1.
- Chaque ligne commence et se termine par 1.
- Chaque élément interne est la somme des deux éléments situés juste au-dessus dans la ligne précédente.
Voici un programme en C# générant un triangle de Pascal en fonction du nombre de lignes spécifié :
- Program PascalTriangle;
-
- Uses SysUtils;
-
- Procedure GeneratePascalTriangle(n:Integer);
- Var
- Triangle:Array of Array of Integer;
- i,j:Integer;
- Begin
- SetLength(triangle,n);
- { Remplir le triangle }
- For I:=0 to n-1 do Begin
- SetLength(triangle[i], i + 1);
- Triangle[i][0]:=1; { Premier élément de chaque ligne }
- Triangle[i][i]:=1; { Dernier élément de chaque ligne }
- For j:=1 to i-1 do Triangle[i][j]:=Triangle[i-1][j-1]+Triangle[i-1][j];
- End;
- { Afficher le triangle }
- For i:=0 to n-1 do Begin
- Write(StringOfChar(' ',(n - i)*2)); { Espaces pour centrer le triangle }
- For j:=0 to i do Write(triangle[i][j]:4); { Espacement uniforme des nombres }
- Writeln;
- End;
- End;
-
- Var
- n:Integer;
- BEGIN
- Write('Entrez le nombre de lignes du triangle de Pascal : ');
- ReadLn(n);
- If n>0 Then Begin
- Writeln('Voici le triangle de Pascal :');
- GeneratePascalTriangle(n);
- End
- Else
- Writeln('Veuillez entrer un nombre supérieur à 0.');
- END.
Si nous l'exécutons, nous nous assurerons qu'il fonctionne correctement. Voici à quoi ressemble le résultat pour une entrée avec le nombre 12 :
Entrez le nombre de lignes du triangle de Pascal : 12Triangle de Pascal :
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
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1