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.
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
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
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
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 +
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.
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...
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
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
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.
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...
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 ?
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...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :