La pyramide humaine
Des forains s'entraînent pour faire la pyramide humaine la plus haute. Elle doit avoir onze niveaux avec une personne au sommet, deux personnes au niveau deux, trois personnes au niveau suivant etc. De combien de personnes ont-ils besoin ?
Il faut additionner le nombre de personnes de chaque niveau de la pyramide. Cela revient à faire la somme . On va voir comment la boucle for de l'éditeur permet de faire ce calcul.
On commence par définir une variable somme
que l'on va incrémenter petit à petit
: pour chaque niveau n
de la pyramide on incrémente la somme
du
nombre de personnes correspondant. C'est la boucle for des lignes 2 et 3 qui réalise cette
incrémentation.
- 1
Ajoute un
print
à la ligne 4 pour connaître la valeur de la variablesomme
à chaque itération de la boucle for.Solution
Pour afficher la valeur de la variable
somme
à chaque itération, il faut placer leprint
à l'intérieur de la boucle for. Autrement dit il faut indenter cette instruction :somme = 0 for n in range(1,12): somme = somme + n print(somme)
Au final 66 personnes sont requises pour cette pyramide
- 2
Pour connaître uniquement la valeur finale de la variable
somme
il faut désindenter tonprint
c'est-à-dire retirer l'indentation pour qu'il ne soit plus dans la boucle for.Fais la modification nécessaire pour n'afficher que le résultat final. Combien de personnes faut-il pour une pyramide à onze niveaux ?
Solution
Pour afficher uniquement la valeur finale de la variable
somme
, il faut retirer l'indentation de l'instructionprint
.On peut également ajouter un saut de ligne pour qu'il soit visuellement plus clair que cette ligne ne fait pas partie de la boucle :
somme = 0 for n in range(1,12): somme = somme + n print(somme)
- 3
Les forains souhaitent composer les niveaux avec uniquement des hommes ou des femmes une fois sur deux : les niveaux 1, 3, 5 ... 11 sont constitués d'hommes et les niveaux 2, 4 ... 10 de femmes.
Combien d'hommes sont nécessaires pour cette pyramide ? Modifie la boucle for pour avoir la réponse.
Je te conseille de laisser le
print
indenté pour voir lasomme
s'incrémenter. Comme ça tu peux vérifier la séquence de nombres.Solution
Pour compter le nombre d'hommes, il faut faire la somme des nombres impairs . Comme deux nombres impairs sont séparés de 2, on obtient cette somme en précisant le pas dans la fonction
range
somme = 0 for n in range(1,12,2): somme = somme + n print(somme)
- 4
Combien de femmes sont nécessaires pour cette pyramide ? Donne ta réponse dans une variable
nb_femmes
.Solution
D'après la question 2 il y a 55 forains en tout dont 36 hommes d'après la question précédente. Donc il y a femmes dans la pyramide
somme = 0 for n in range(1,12,2): somme = somme + n nb_femmes = 30
- 5
Pour rendre le spectacle unique, les forains décident de réaliser une pyramide à base carrée. Comme pour les pyramides égyptiennes, chaque niveau est un carré : il y a une personne sur le premier niveau, puis un carré de 4 personnes au deuxième niveau, puis un carré de 9 personnes au niveau suivant etc.
L'objectif est de réussir à faire six étages. Combien faut-il de personnes pour construire cette pyramide ? Modifie la boucle for pour faire le calcul. Je te conseille de laisser le
print
indenté pour voir lasomme
augmenter.Solution
Comme il y a une personne sur le niveau 1, quatre personnes sur le niveau 2, neuf personnes sur le niveau 3 etc. le nombre total de forains est donné par la somme qui est la somme des carrés
Comme la somme vaut initialement 0 (car
somme = 0
sur la ligne 1) il faut incrémenter la somme pour chacun des six niveaux. On commence donc par créer une boucle qui parcourt les six niveaux. Pour cela on utiliserange(1,7)
Il faut ensuite incrémenter la variable
somme
. Au niveau 1 on ajoute une personne, au niveau 2 on ajoute 4 personnes etc. En général, au niveau on ajoute personnes. Donc il faut incrémentersomme
den ** 2
, ce qui donnesomme = somme + n ** 2
somme = 0 for n in range(1,7): somme = somme + n ** 2 print(somme)