Triangle de Pascal A) Simple calcul et affichage sur console

Description

Bonjour,

Le triangle de Pascal n'a plus aucun secret pour des gens comme vous et moi !
C'est ce que j'ai pensé (pour moi-même) pendant longtemps.
Puis, petit à petit, j'en ai découvert de nouvelles "propriétés" ...

Dans cette nouvelle série d'articles sur le "Triangle de Pascal", je désire avec vous, découvrir de nouvelles caractéristiques.
Cette collection d'articles peut s'étendre sur plusieurs langages de programmation.

Pour commencer, malgré les mille et un exemples que l'on trouve sur le web, je me permets de présenter d'abord un code en C ou C++:
#define uint unsigned int

const uint Nmax=100;
uint tp[(Nmax+1)*(Nmax+2)/2]; // Trinagle de Pascal (TP) pour N <= Nmax

void CalculTP(uint N) {
  tp[0]=tp[1]=tp[2]=1;
  for (uint n=2,i=0,I,k=3; n<=N; ++n) {
    tp[k++]=1;
    for (I=(i++)+n; i<I; ++i) tp[k++]=tp[i]+tp[i+1];
    tp[k++]=1;
  }
}

void PrintTP(uint N) {
  printf_s("Triangle de Pascal: N=%u",N);
  for (uint n=0,k=0; n<=N; ++n) {
    printf_s("n%u:",n);
    for (uint i=0; i<=n; ++i) printf_s(" %u",tp[k++]);
  }
}
Contrairement à la majorité des codes proposés sur le web, le triangle de Pascal est ici basé sur un vecteur (et non sur tableau de dimension 2).
Donc, comme pour par exemple les matrices triangulaires, la mémoire utilisée est mieux adaptée, et le temps de calcul semble meilleur.

Voici une version étalée de CalculTP qui s'adapte plus facilement à d'autres langages de programmation:
void CalculTP(uint N) {
  tp[0]=tp[1]=tp[2]=1;
  uint n=2,i=0,I,k=3;
  while (n<=N) {
    tp[k]=1;
    k=k+1;
    I=i+n;
    i=i+1;
    do {
      tp[k]=tp[i]+tp[i+1];
      k=k+1;
      i=i+1;
    } while (i<I);
    tp[k]=1;
    k=k+1;
    n=n+1;
  }
}



Bonne lecture ...

Liens

WikipédiA: Triangle de Pascal
Villemin Gerard: TRIANGLE de PASCAL
CodeS-SourceS: Triangle de pascal
CodeS-SourceS: Triangle de pascal
CodeS-SourceS: Triangle de pascal en c
CodeS-SourceS: Triangle de pascal
CodeS-SourceS: Triangle de pascal
CodeS-SourceS: Triangle de pascal
CodeS-SourceS: Triangle de pascal récursif
CodeS-SourceS: Triangle de pascal en php
...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.