Je débute en algorithmie et je suis bloqué sur le calcul du nombre d'itération d'une boucle for.
Pour résumer nous devons à un moment calculer la sommes des entiers allant de 1 à n-1 (qu'on appellera S); en développant, je tombe sur S = (n²)/2 mais toutes les vidéos sur les quels je tombe trouvent un résultat de S = ((n-1)*n)/2 et je ne trouve rien qui justifie cela.
Et si tu pars de k=1 pour aller jusqu'à n-1, ça te fait n-1 sommes soit n x (n-1)
Si maintenant tu regardes la première colonne de la liste, c'est 1,2, 3.... n-1 et pareil dans la deuxième. Donc 2 fois la somme des entiers de 1 à n-1.
A part ça, ce que tu as écrit en bas à droite est horriblement faux.
Merci pour votre explication, je comprends mieux à présent ; et pour ce qui est écrit en bas à droite c'est car c'est "l'ordre" du résultat qui nous intéresse pas le résultat en lui même. Merci encore à vous.
michelbillaud a écrit:
Justification :
Si tu additionnés
1 et n-1
2 et n-2
3 et n-3
...
Tu as des sommes qui valent chacune k + (n-k) = n
Et si tu pars de k=1 pour aller jusqu'à n-1, ça te fait n-1 sommes soit n x (n-1)
Si maintenant tu regardes la première colonne de la liste, c'est 1,2, 3.... n-1 et pareil dans la deuxième. Donc 2 fois la somme des entiers de 1 à n-1.
A part ça, ce que tu as écrit en bas à droite est horriblement faux.
Il est compréhensible que vous ayez des questions sur le calcul du nombre d'itérations d'une boucle for et sur la formule pour la somme des entiers allant de 1 à n-1 (S). Il semble y avoir une confusion ici, et la formule correcte est en effet S = ((n-1) * n) / 2.
La formule S = (n²) / 2 n'est pas correcte pour la somme des entiers de 1 à n-1. La formule correcte est dérivée de la formule de Gauss pour la somme des premiers entiers positifs et s'explique comme suit :
1 + 2 + 3 + ... + (n-1) + n = (n * (n+1)) / 2
Cependant, si vous souhaitez comprendre plus en détail pourquoi cette formule est correcte et comment elle est dérivée, je vous recommande de consulter le cours sur l'arithmétique, les nombres entiers et rationnels disponible à l'adresse suivante : https://mathovore.fr/arithmetique-nombres-entiers-et-rationnels-cours-maths-24 .
Ce cours devrait vous fournir une explication approfondie de la formule, des exemples pratiques et des démonstrations mathématiques pour vous aider à comprendre le calcul du nombre d'itérations d'une boucle for et la formule pour la somme des entiers de 1 à n-1.
N'hésitez pas à explorer ce cours pour obtenir une compréhension plus approfondie de ce sujet spécifique en algorithmie.
- Edité par miragemirage 22 septembre 2023 à 21:37:44
La formule S = (n²) / 2 n'est pas correcte pour la somme des entiers de 1 à n-1. La formule correcte est dérivée de la formule de Gauss pour la somme des premiers entiers positifs et s'explique comme suit :
1 + 2 + 3 + ... + (n-1) + n = (n * (n+1)) / 2
1. Heureusement, personne n'a écrit que la somme était la moitié du carré
2. Ton truc, c'est pas une explication mais une formule tirée du chapeau.
Une explication :
La somme S = 1 + 2 + .... + (n-2) + (n-1) comporte n-1 termes.
Elle peut aussi s'écrire à l'envers S = (n-1) + (n-2) + ..... + 2 + 1
En additionnant les deux expressions, on a
2S = 1+(n-1) + 2+(n-2) . ... + (n-2)+2 + (n-1)+1
On y voit n-1 termes de la forme k+(n-k), qui valent chacun n.
Donc 2S = (n-1)n.
3. Ton lien ne marche pas.
- Edité par michelbillaud 22 septembre 2023 à 9:51:26
(Oups... J'ai cru qu'il fallait calculer le nombre d'itération de la boucle for nécessaire pour calculer S. Mais en fait je devine qu'il s'agit de calculer un nombre d'itération pour une certaine boucle for, ce qui mène à calculer S. Du coup j'ai répondu de travers, j'enlève.)
@AbouziaKrazidiDiallo Bonjour, merci de ne pas squatter le sujet des autres pour une nouvelle question, créer votre propre sujet dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et se termine par des remerciements par avances pour les futures réponses), la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.