You are on page 1of 2

Voici un programme C permettant de résoudre le triangle de Pascal et calculer sa complexité :

#include <stdio.h>
#include <stdlib.h>

// Calcule le triangle de Pascal de taille n


int** triangle_de_pascal(int n) {
// Initialisation
int** triangle = malloc(sizeof(int*) * (n + 1));
for (int i = 0; i <= n; i++) {
triangle[i] = malloc(sizeof(int) * (i + 1));
}

// Initialisation de la première ligne


for (int i = 0; i <= n; i++) {
triangle[0][i] = 1;
}

// Remplissage du triangle
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}

return triangle;
}

// Calcule la complexité de l'algorithme de résolution du triangle de Pascal


int complexité_triangle_de_pascal(int n) {
int complexité = 2 * n;
for (int i = 2; i <= n; i++) {
complexité += i;
}
return complexité;
}

// Test du programme
int main() {
// Calcul du triangle de Pascal de taille 5
int** triangle = triangle_de_pascal(5);

// Affichage du triangle
for (int i = 0; i <= 4; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle[i][j]);
}
printf("\n");
}

// Calcul de la complexité
int complexité = complexité_triangle_de_pascal(5);
printf("Complexité : %d\n", complexité);

// Libération de la mémoire
for (int i = 0; i <= 4; i++) {
free(triangle[i]);
}
free(triangle);

return 0;
}
Explication du programme

Le programme fonctionne de la manière suivante :

 Fonction triangle_de_pascal() :
o Initialisation : on crée un tableau de tableaux d'entiers, dont la taille est n + 1. La première ligne du triangle
est initialisée à 1.
o Remplissage : on parcourt le triangle de bas en haut, en commençant par la deuxième ligne. Pour chaque
ligne, on calcule les termes en utilisant la relation de Pascal.
o Retour : on renvoie le tableau contenant les termes du triangle.
 Fonction complexité_triangle_de_pascal() :
o Calcul de la complexité : on parcourt le triangle de bas en haut, en comptant le nombre d'éléments visités.
o Retour : on renvoie la complexité, qui est en O(n^2).
 Fonction main() :
o Calcul du triangle de Pascal de taille 5.
o Affichage du triangle.
o Calcul de la complexité.
o Libération de la mémoire.

Complexité

La complexité de l'algorithme est en O(n^2), car il faut parcourir deux fois le triangle, une fois pour
initialiser la première ligne et une fois pour remplir le triangle.

Exemple

L'exécution du programme donne le résultat suivant :

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

Complexité : 20

Le triangle de Pascal de taille 5 est affiché sur la première ligne. La complexité de l'algorithme est de 20, car
il faut parcourir 5 lignes et 10 colonnes.

You might also like