Python en mathématiques - Niveau 1

Boucle while : Exercices

Temps d'attente

On lance un dé équilibré à six faces numérotées de 1 à 6.

  1. Écrire une fonction en Python, nommée je_veux_un_six(), qui respecte la spécification suivante :

    Paramètres /
    Valeur renvoyée le nombre de lancers effectués pour obtenir 6.
  2. Définir une seconde fonction, nommée attente_moyenne(), qui calcule le temps d'attente moyen du 6 pour un échantillon dont la taille est donnée en paramètre.
    Tester cette fonction avec $10 000$ échantillons ($10 000$ lancers).
  • Temps d'attente du 6
  • Moyenne

On importe la fonction randint() du module random afin de générer un entier aléatoire compris entre 1 et 6.


			
			

			
			

Polynôme et nombres premiers

Leonhard considère le polynôme suivant : $ f(n) = n^2 + n + 41 $. Il calcule les images des 15 premiers entiers 0, 1, 2, 3, ... et constate qu'ils sont premiers.

  1. Définir une fonction est_premier() qui respecte la spécification suivante :
    Paramètre un entier n
    Valeur renvoyée le booléen True si n est premier, False sinon
  2. Définir ensuite une fonction sans paramètre qui détermine et renvoie le plus petit entier $n$ tel que $ f(n) $ ne soit pas premier.
  • Fonctions utiles
  • Fonction est_premier()
  • Une solution

La fonction floor() du module math renvoie la partie entière du nombre donné en argument.
Le module math contient aussi la fonction sqrt() qui renvoie la racine carrée du nombre passé en paramètre.

Une autre version de cette fonction est proposée à la page [Algorithmes au programme de 2nde] → [Arithmétique]


##----- Importation des modules -----##
from math import floor, sqrt

##----- Définition des Fonctions -----##
def est_premier(n):
    if n < 2 :
        return False
    for k in range(2, floor(sqrt(n))+1 ) :
        if n % k == 0 :
            return False
    return True
			
>>> est_premier(17)
True

>>> est_premier(27)
False
	

##----- Importation des modules -----##
from math import floor, sqrt

##----- Définition des Fonctions -----##
def est_premier(n):
    if n < 2 :
        return False
    for k in range(2, floor(sqrt(n))+1 ) :
        if n % k == 0 :
            return False
    return True


def f(n):
    return n**2+n+41


def resultat_premier():
    k = 0
    while est_premier(f(k)) :
        k += 1
    return k
			
>>> resultat_premier()
40
	

Augmentation relative

  1. Définir une fonction Python, nommée doubler(), qui respecte la spécification suivante :
    Paramètre Un nombre C > 0
    Valeur renvoyée Le nombre d'années nécessaires pour doubler le capital C sachant que ce capital augmente de 1% par an
  2. Le nombre d'années nécessaires pour doubler le capital C dépend-il de la valeur de C ?
  3. En déduire une version de cette fonction qui n'utilise pas de paramètre.
  4. En déduire une version de cette fonction qui utilise comme paramètre le pourcentage annuel d'augmentation.
  • Question 1
  • Question 2
  • Question 3
  • Question 4

			
			
Pour $ C \neq 0 $ : $$ 1{,}01^n C = 2 C \Longleftrightarrow 1{,}01^n = 2 $$

			
			

			
			

Multiple de 3

  1. On calcule la somme des chiffres d'un entier naturel n. Si le résultat n'est pas compris entre 0 et 9, on calcule la somme de ses chiffres. Si le résultat n'est pas entre 0 et 9, on calcule la somme de ses chiffres... et ainsi de suite jusqu'à obtenir un résultat entre 0 et 9.
    Écrire une fonction Python, nommée jusquau_chiffre(), qui réalise ce travail.
  2. Utiliser la fonction précédente pour définir une nouvelle fonction, nommée est_multiple_de_3(), qui renvoie un booléen indiquant si un entier naturel est multiple de 3.
  • Rappels
  • Jusqu'au chiffre
  • Une solution
L'instruction n = n // 10 remplace n par son nombre de dizaines.
L'instruction n = n % 10 remplace n par son nombre d'unités.