Antoine est un élève pressé : il souhaite faire rapidement son exercice de Maths pour demain.
Tellement rapidement que, plutôt que de simplement relire son cours afin de trouver la formule adaptée, il souhaite utiliser Python afin de faire les calculs à sa place !
Son travail à faire est le suivant :
Somme des termes d'une suite arithmétique
Soit \(u\) la suite arithmétique de premier terme \(u_0=5\) et de raison \(3\).
Justifier que pour tout entier naturel \(n\) on a : \(u_n=5+3n\).
Calculer la valeur des termes \(u_0\), \(u_1\), ..., \(u_{10}\).
À l'issue de ce script, la variable termes contient toutes les valeurs souhaitées et somme contient la valeur attendue : 220 !
Antoine est satisfait mais... c'est encore trop long ! Il souhaite ne pas écrire plus de deux lignes ! En demandant à son agent conversationnel préféré (ce qui lui prend un peu de temps), il trouve la construction suivante :
Avec une liste en compréhension
termes=[5+3*nforninrange(0,11)]somme=sum(termes)
Il se gratte la tête, cherche à nouveau des explications sur le net et finit par comprendre :
on utilise une liste en compréhension dont la syntaxe générale est [calculforvariableinensemble_à_parcourir] ;
cette liste contient tous les termes de la suite souhaités et est affectée à la variable termes ;
la fonction sum de Python additionne tous les éléments d'une liste.
Utiliser la même démarche (une liste en compréhension puis la fonction sum) afin de calculer les termes décrits ci-dessous et leur somme.
Dans chaque cas, les tests vérifieront :
que la liste termes contient bien tous les termes demandés (dans le bon ordre) ;
que la variable somme contient bien la somme attendue.
assert ?
Le mot clé assert est utilisé en Python afin de vérifier que des propositions sont vraies.
Ainsi, l'instruction assert3+5*7==38 permet de vérifier que l'expression 3+5*7 est bien évaluée à 38.
Si c'est le cas, le programme continue de se dérouler normalement. Dans le cas contraire, le programme est interrompu et une erreur est signalée.
La vidéo ne s'affiche pas... ?
Il peut arriver que les vidéos ne s'affichent pas sur des navigateurs basés sur Chrome, ou si un ad-blocker est activé sur le navaigateur. Essayer avec un autre navigateur si vous êtes dans ce cas (FireFox, typiquement), ou désactivez l'ad-blocker.
1. La même, mais plus loin
Soit \(u\) la suite pour tout \(n\in\mathbb{N}\) par \(u_n=5+3n\).
Il y a un panier et cent cailloux rangés en ligne droite et à des espaces égaux d'une toise2.
On propose de les ramasser et les rapporter dans le panier un à un, en allant d'abord chercher le premier, ensuite le second, et ainsi de suite jusqu'au dernier.
Combien de toises doit faire celui qui entreprend cet ouvrage ?
La liste termes contiendra les différentes longueurs parcourues pour ramasser le premier caillou, le deuxième, ..., le centième.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Antoine est tellement content de sa découverte qu'il la raconte à deux amis.
Le lendemain, chacun d'eux partage l'astuce avec deux autres personnes.
Le surlendemain, cela recommence et encore et encore : chaque jour, les personnes ayant découvert l'astuce la veille la partagent avec deux nouvelles personnes.
Par un hasard extraordinaire, chacun s'adresse à une personne qui n'a jamais entendu l'astuce.
Si on considère qu'Antoine a raconté son histoire le premier jour et que le processus est effectué \(30\) jours en tout, combien de personnes, Antoine compris, connaîtront l'astuce au total ?
Aide
Il s'agit de calculer \(S = 1 + 2^1+2^2+\dots+2^{30}\).
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)