V. Énoncés des exercices▲
V-A. Suite arithmétique▲
Écrire deux fonctions de paramètre N entier naturel, et qui retournent la liste des n premiers termes de la suite arithmétique de raison 12 et de premier terme 1 :
kitxmlcodelatexdvp\forall n \in\mathbb{N}\quad u_n=12n+1finkitxmlcodelatexdvppar deux méthodes différentes :
- à l'aide d'une boucle ;
- en compréhension de liste.
Évaluer la rapidité des deux fonctions en utilisant la fonction magique %timeit dans une console IPython.
V-B. Moyenne et variance▲
- Écrire une fonction moyenne() prenant en paramètre une liste de nombres et qui retourne sa moyenne.
- Écrire une fonction variance() prenant en paramètre une liste de nombres et qui retourne sa variance.
On pourra les tester sur des listes de nombres aléatoires que l'on aura créées à l'aide de la fonction random() du module random qui renvoie un décimal (float) aléatoire dans [0,1[.
V-C. Listes définies en compréhension▲
Construire par compréhension de liste les listes suivantes :
- La liste des logarithmes népériens (ln) des entiers compris entre 1 et 20 ;
- La liste des entiers compris entre 0 et 100 qui sont pairs et qui ne sont pas des multiples de 3 ;
- La liste ['@-@', '@--@', '@---@', '@----@', '@-----@'] ;
- La liste des couples d'entiers entre 0 et 10 dont la somme est un multiple de 5 ;
- Écrire une fonction qui prend pour paramètre un entier n et retourne sous forme d'une liste de listes la matrice identité de rang n.
V-D. Chiffrement de César▲
C'est une méthode très simple de chiffrement de messages en un texte crypté pour le rendre « illisible » à qui n'en a pas la clef. Dans un message en lettres majuscules, supprimer tous les espaces et symboles, puis changer chaque lettre par sa Nième lettre suivante dans l'ordre alphabétique (après 'z' on reprend à 'a'), où N est un entier entre 1 et 25.
- Écrire une fonction cesar_crypt() qui prend deux paramètres, la clef de chiffrement N et une chaîne de caractères en majuscules sans symbole ni espace, et renvoie le chiffrement de César de la chaîne.
- Écrire une fonction cesar_decrypt() qui prend deux paramètres, un texte crypté et la clef, puis retourne le texte décrypté.
V-E. Triangle de Pascal▲
Écrire une fonction pascal_triangle() qui prend en paramètre un entier kitxmlcodeinlinelatexdvpnfinkitxmlcodeinlinelatexdvp et retourne une liste constituée de kitxmlcodeinlinelatexdvpn+1finkitxmlcodeinlinelatexdvp listes, la liste kitxmlcodeinlinelatexdvpp\in\left[ \left[ 0,n\right] \right]finkitxmlcodeinlinelatexdvp contenant les kitxmlcodeinlinelatexdvpp+1finkitxmlcodeinlinelatexdvp coefficients binomiaux kitxmlcodeinlinelatexdvp{p\choose0},{p\choose1\vphantom0},...,{p\choose p}finkitxmlcodeinlinelatexdvp.
Par exemple pour kitxmlcodeinlinelatexdvpn=2finkitxmlcodeinlinelatexdvp le résultat retourné devrait être : [[1
], [1
, 1
], [1
, 2
, 1
]].
Pour cela, on appliquera : kitxmlcodeinlinelatexdvp{n\choose0}={n\choose n\vphantom0 }=1finkitxmlcodeinlinelatexdvp et la relation de Pascal :
kitxmlcodelatexdvp\forall k\in\left[\left[ 1,n-1 \right]\right],\quad {n\choose k}={n-1\choose k-1}+{n-1\choose k}finkitxmlcodelatexdvp