En mathématiques et en informatique, un tableau triangulaire de nombres, de polynômes, etc., est une séquence doublement indexée où chaque ligne a une longueur égale à son indice. Autrement dit, la i -ème ligne contient uniquement i éléments.
triangle de Bell , dont les nombres comptent les partitions d'un ensemble dans lequel un élément donné est le plus grand singletonLes tableaux triangulaires d'entiers dans lesquels chaque ligne est symétrique et commence et se termine par 1 sont parfois appelés triangles de Pascal généralisés ; des exemples incluent le triangle de Pascal, les nombres de Narayana et le triangle des nombres eulériens.
Généralisations
Les tableaux triangulaires peuvent répertorier des valeurs mathématiques autres que des nombres ; par exemple, les polynômes de Bell forment un tableau triangulaire dans lequel chaque élément du tableau est un polynôme.
Des tableaux dans lesquels la longueur de chaque ligne augmente linéairement en fonction du numéro de ligne (plutôt que d'être égale au numéro de ligne) ont également été considérés.
Applications
La méthode de Romberg peut être utilisée pour estimer la valeur d'une intégrale définie en complétant les valeurs dans un triangle de nombres.
La transformation de Boustrophedon utilise un tableau triangulaire pour transformer une séquence d'entiers en une autre.
En général, un tableau triangulaire est utilisé pour stocker n'importe quel tableau indexé par deux nombres naturels où j ≤ i .
Indexage
Stocker un tableau triangulaire dans un ordinateur nécessite une correspondance entre les coordonnées bidimensionnelles ( i , j ) et une adresse mémoire linéaire . Si deux tableaux triangulaires de même taille doivent être stockés (comme dans la décomposition LU ), ils peuvent être combinés en un tableau rectangulaire standard . S'il n'y a qu'un seul tableau, ou s'il doit être facilement extensible, il peut être stocké de sorte que la ligne i commence au i- ème élément triangulaire T<sub> i</sub> . Tout comme pour un tableau rectangulaire, une multiplication est nécessaire pour trouver le début de la ligne, mais cette multiplication porte sur deux variables , ce qui empêche certaines optimisations, telles que l'utilisation d'une séquence de décalages et d'additions .i*(i+1)/2