Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

Nombres triangulaires

Posté par
Lcf
07-06-12 à 12:15

Bonjour à tous,

Je suis à la recherche d'une formule permettant de calculer la valeur d'un nombre triangulaire d'indice n, correspondant à cette suite:

0 0 1 4 10 20 35 ...

J'en ai d'autres à rechercher pour un script que je développe mais, en théorie (ayant déjà la formule de 0 1 3 6 10 15 21 ...), je pense que je devrais arriver à trouver la logique qui les lie.

Attention, si cela est possible, afin d'éviter un bouclage excessivement consommateur en mémoire, je souhaiterais avoir une formule qui ne passe pas par le calcul de la suite précédente.

Merci d'avance.

Posté par
romscau
re : Nombres triangulaires 07-06-12 à 12:40

ta suite que tu cherche est la somme consécutif de ta deuxième suite

Ainsi je ne vois pas comment tu peux ne pas passer par cette dernière

Posté par
DHilbert
re : Nombres triangulaires 07-06-12 à 12:46

Cf. .

A +

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 12:50

Merci pour ta réponse, mais même avec la première liste calculée, je n'arrive pas à concevoir la formule.

Celle de la première donne ceci, pour mes besoins :

(n-1)*n/2

Posté par
romscau
re : Nombres triangulaires 07-06-12 à 12:57

0 1 3 6 10 15 21 sont les sommes des entiers consécutif 1=0+1 3=1+2 6=1+2+3 10=1+2+3+4 .... on a donc n(n+1)/2 (on commence a n=0)

preuve:

   1+2+3+4+...+n
+  n+ ....+4+3+2+1
=  n+1 + n+1 + n+1 +n+1 + ... +n+1 il y a n termes

donc la somme est n*(n+1)/2

0 1 4 10 20 35 est la somme des termes de la dernière suite 1 = 0+1 4 = 0+1+3 10 = 0+1+3+6 .....

a toi de jouer maintenant

Posté par
DHilbert
re : Nombres triangulaires 07-06-12 à 12:58

Cf. le lien que je te proposais le 07-06-12 à 12:46, page 21 du document (i.e. page 14 du fichier PDF).

A +

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 13:11

DHilbert> merci, je l'ai enregistré, car je n'ai actuellement pas le net chez moi...

romscau> le hic c'est qu'à chaque nouvelle liste, j'ai un décalage de rang, voici le résultat de mes listes:

0 1 3 6 10 15 21
0 0 1 4 10 20 35
0 0 0 1  5 15 35
0 0 0 0  1  6 21

Du coup, les formules en question deviennent erronées, je me retrouve avec des fractions et/ou négatifs, à la place des zéros.

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 13:44

Hum, avec un peu plus d'infos sur ce qui me pousse à chercher ces formules devrait peut-être vous aider à comprendre mon souci.

En gros, j'ai créé un algorithme composé de boucles et générant quelque chose comme ceci:

a     b                   c            d                e                    f
a   a+b                 b+c          c+d              d+e                  e+f
a  2a+b              a+2b+c       b+2c+d           c+2d+e               d+2e+f
a  3a+b             3a+3b+c    a+3b+3c+d        b+3c+3d+e            c+3c+3e+f
a  4a+b             6a+4b+c   4a+6b+4c+d     a+4b+6c+4d+e         b+4c+6d+4e+f
a  5a+b            10a+5b+c 10a+10b+5c+d  5a+10b+10c+5d+e    a+5b+10c+10d+5e+f
a  6a+b            15a+6b+c 20a+15b+6c+d 15a+20b+15c+6d+e  6a+15b+20c+15d+6e+f
a  7a+b            21a+7b+c 35a+21b+7c+d 35a+35b+21c+7d+e 21a+35b+35c+21d+7e+f

On y voit clairement les nombres triangulaires apparaître.

Les lettres de a-f sont des variables dont le nombre peut aussi être variable, donc si j'en ai un million, je vais avoir un million de listes à calculer.

Vous en conviendrez, ce n'est pas viable, surtout pour une application web, en javascript...

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 13:50

Et voici les formules, que j'ai pour l'instant, me permettant d'obtenir un résultat direct :

a // on ne s'en doutait pas ^^'

l*a+b // ok

(l-1)*l/2*a+l*b+c // ok

((l-1)*l/2+(l-2)*l/2)*a+(l-1)*l/2*b+l*c+d // incorrecte

Posté par
LeDino
re : Nombres triangulaires 07-06-12 à 14:13

Bonjour Lcf,

La formule que tu cherches est Sn = n(n+1)(n+2)/6

Explication :

Ta suite de départ est Un = ii
Romscau t'a montré que Un = n(n+1)/2

Maintenant tu cherches Sn = iUi
Mais dans ce cas : Sn = ii(i+1)/2

Sn = ii²/2 + ii/2

Le deuxième terme tu le connais, c'est la moitié de Un.
Le premier, c'est la moitié de la somme des premiers carrés.
La somme des premiers carrés est connue (il existe des démonstrations sur le web si ça t'intéresse...).
Elle vaut n(n+1)(2n+1)/6

En remplaçant et après calculs, tu trouves la formule :
Sn = n(n+1)(n+2)/6

A remarquer que :   Un = C n+1,2
Et que :                   Sn = C n+2,3

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 14:20

Et au moyen de la formule du pdf linké par DHilbert (n*(n-1)*(n+1))/6, j'arrive à ceci,

si n=0:
(0*(0-1)*(0+1))/6=0

si n=1;
(1*(1-1)*(1+1))/6=0

si n=2;
(2*(2-1)*(2+1))/6=1

si n=3;
(3*(3-1)*(3+1))/6=2

si n=4;
(4*(4-1)*(4+1))/6=10

Mais je ne vois pas du tout à quoi ça correspond.

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 14:36

Mea culpa, j'ai fait une erreur si n vaut 3, ça marche, donc...

LeDino> merci pour ces explications claires...

Donc la formule suivante, j'imagine qu'elle commence par :

Tn = n(n+1)(n+2)(n+3)

Mais selon quoi le diviseur évolue-t-il, svp?

Désolé de poser un max de question tant que j'ai le net, à 3€/h de connexion, j'vais pas pouvoir rester beaucoup plus longtemps...

Posté par
LeDino
re : Nombres triangulaires 07-06-12 à 14:38

D'abord lis mon post, et tu auras l'explication de la formule.

Ensuite tu as fait une erreur dans ton calcul :
si n=3, 3*(3-1)*(3+1)/6 = 2.3.4/6 = 4

C'est OK ?

Posté par
Lcf
re : Nombres triangulaires 07-06-12 à 14:41

Oui, oui, je l'ai bien lu et je t'y ai répondu dans mon post précédent...

Posté par
LeDino
re : Nombres triangulaires 07-06-12 à 14:43

Pour la série suivante, je suggère C n+3, 4
Qui vaut : n(n+1)(n+2)(n+3)/24

Et ainsi de suite.
Tu reconstitues le triangle de Pascal...

fais une recherche sur le web si le sujet t'intéresse...

Posté par
Lcf
[Résolu] Nombres triangulaires 07-06-12 à 18:51

Ok, j'ai compris le truc... Merci beaucoup...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !