Python en mathématiques - Niveau 2

Compteurs et accumulateurs

Les algorithmes faisant appels aux compteurs (généralement au sein d’une boucle non bornées while en Python) et aux accumulateurs (boucles bornées for et non bornées while) sont souvent utilisés en complément de la notion mathématique de récurrence.

Coefficients binomiaux

  1. Soit $n$ un entier naturel. Rappeler les valeurs des coefficients binomiaux $\begin{pmatrix} n \\ 0 \end{pmatrix}$ et $\begin{pmatrix} n \\ n \end{pmatrix}$ .
  2. Soit $k$ un entier naturel strictement inférieur à $n$. Rappeler la relation de récurrence (relation de Pascal) qui définit le coefficient binomial $\begin{pmatrix} n + 1 \\ k + 1 \end{pmatrix}.$
  3. Écrire le code d'une fonction nommée coeff_bin(n) qui respecte la spécification suivante :
    Paramètre un entier naturel $n$
    Valeur renvoyée liste des coefficients obtenus à l'aide de la relation de Pascal.
  4. Vérifier que l'appel coeff_bin(4) renvoie la liste [1, 4, 6, 4, 1].
  5. Afficher le triangle de Pascal jusqu'à la dixième ligne.
  • Question 1°/
  • Question 2°/
  • Question 3°/
  • Question 4°/
  • Question 5°/

Pour tout entier naturel $n$, $\begin{pmatrix} n \\ 0 \end{pmatrix} = \begin{pmatrix} n \\ n \end{pmatrix} = 1.$

Pour tout entiers naturels $k$ et $n$ tels que $k < n,$ on a $\begin{pmatrix} n + 1 \\ k + 1 \end{pmatrix} = \begin{pmatrix} n \\ k \end{pmatrix} + \begin{pmatrix} n \\ k + 1 \end{pmatrix}.$
def coeff_bin(n):
    if n==0:
        return [1]
    elif n==1:
        return [1, 1]
    else:
        L = [1, 1]
        for k in range(1, n):
            M = [1]
            for i in range(1, len(L)):
                M.append(L[i-1] + L[i])
            M.append(1)
            L = M
    return M
    

                    
                    

                    
                    

Suites numériques

  1. Écrire trois fonctions somme_carres, somme_cubes et somme_inverses spécifiées ci-dessous :
    • somme carres
      Paramètres un entier naturel $n$
      Valeur renvoyée somme des $n$ premiers termes de la suite $\left(n^2\right)_{n\ge 1}.$
    • somme cubes
      Paramètres un entier naturel $n$
      Valeur renvoyée somme des $n$ premiers termes de la suite $\left(n^3\right)_{n\ge 1}.$
    • somme inverses
      Paramètres un entier naturel $n$
      Valeur renvoyée somme des $n$ premiers termes de la suite $\left(\frac{1}{n}\right)_{n\ge 1}.$
    Afficher dans chaque cas la valeur obtenue pour $n=10.$
  2. Écrire une fonction somme respectant la spécification suivante
    Paramètres un entier naturel $i$, un entier naturel $f$, une fonction $u$
    Valeur renvoyée somme $\displaystyle\sum_{k=i}^f u_k.$
  3. Utiliser la fonction somme pour retrouver les résultats de la question 1°/.
  • Question 1°/
  • Question 1°/ (variante)
  • Question 2°/
  • Question 3°/

On utilise une boucle for faisant varier le compteur $k$, et un accumulateur.


                    
                    

On utilise une boucle while. L'initialisation du compteur et la condition de sortie sont un peu plus nettement séparées, et son évolution est plus explicite.


                    
                    

def somme(i, f, u):
    k = i 
    accumulateur = 0
    while k <= f:
        accumulateur = accumulateur + u(k)
        k = k+1
    return accumulateur
        

                    
                    

Autres algorithmes au programme

Programme de 1ère techno 2019

Algorithmique et programmation Exemples d’algorithme
Variables Utiliser la notion de compteur
Utiliser le principe d’accumulateur pour calculer une somme, un produit
Analyse Exemples d’algorithme
Suites numériques Calculer un terme de rang donné d’une suite, une somme finie de termes.
Déterminer une liste de termes d’une suite et les représenter.

Programme de Tale techno 2020

Analyse Exemples d’algorithme
Suites numériques Écrire en langage Python une fonction qui calcule la somme des n premiers carrés, des n premiers cubes ou des n premiers inverses ; établir le lien entre l’écriture de la somme à l’aide du symbole $\sum$, et les composantes de l’algorithme (initialisation, sortie de boucle, accumulateur, compteur).
Statistique et probabilités Exemples d’algorithme
Séries statistiques à deux variables quantitatives Automatiser le calcul de $\sum_i \left(y_i – (ax_i + b)\right)^2.$
Variables aléatoires discrètes finies Générer un triangle de Pascal de taille $n$ donnée.
Calculer l’espérance $\sum_i x_ip_i$ d’une variable aléatoire suivant une loi de probabilité donnée ; cas particulier d’une variable aléatoire suivant la loi binomiale B(n, p).
Représenter graphiquement l’espérance de lois binomiales B(n, p) à $p$ fixé et $n$ variable, à $n$ fixé et $p$ variable puis faire le lien avec l’expression admise de l’espérance.

Programme de 1ère spécialité 2019

Algèbre Exemples d’algorithme
Suites numériques, modèles discrets Calcul de termes d’une suite, de sommes de termes
Calcul de factorielle
Liste des premiers termes d’une suite : suites de Syracuse, suite de Fibonacci.

Programme de Tale spécialité 2020

Algèbre et géométrie Exemples d’algorithme
Combinatoire et dénombrement Pour un entier n donné, génération de la liste des coefficients à l’aide de la relation de Pascal.
Génération des parties à 2 et 3 éléments d'un ensemble fini.

Programme de Tale complémentaire 2020

Analyse Exemples d’algorithme
Suites numériques, modèles discrets Pour une suite récurrente $u_{n+1} = ƒ(u_n),$ calcul des termes successifs.
Calcul d’un terme de rang donné d’une suite
Thèmes d’étude Exemples d’algorithme
Calculs d’aires Calcul d’un terme de rang donné d’une suite.
Thèmes d’étude Exemples d’algorithme
Répétition d’expériences indépendantes, échantillonnage Dans le cadre de la loi binomiale :
  • calcul de coefficients binomiaux (triangle de Pascal), de probabilités ;
  • détermination d’un intervalle $I$ pour lequel la probabilité $P(X \in I)$ est inférieure à une valeur donnée $\alpha$, ou supérieure à $1 - \alpha$.