Thông tin

Tác giả François MICHEL
Hạn chót Không có hạn chót
Giới hạn nộp bài Không có giới hạn

Tags

Đăng nhập

Session 3: Q* Equations du second degré

Les équations du second degré sont des équations de la forme suivante:

$$ax^2 + bx + c = 0$$

avec \(a \neq 0\)

Pour déterminer si l'équation dispose d'une solution, on calcule le nombre \(\rho = b^2-4ac\). Si \(\rho\) est strictement positif, l'équation a exactement deux solutions. La première solution s'obtient via la formule suivante :

\begin{equation*} \frac{-b + \sqrt{\rho}}{2a} \end{equation*}

Et la seconde racine s'obtient via la formule suivante :

\begin{equation*} \frac{-b - \sqrt{\rho}}{2a} \end{equation*}

Si \(\rho\) est nul, l'équation a exactement une solution, dont la valeur est égale à \(-b/(2a)\). Si \(\rho\) est négatif, l'équation n'a aucune solution.

Pour montrer que vous maîtrisez la décomposition en sous-problèmes, vous devrez définir trois fonctions. Chacune d'entre elles prendra uniquement comme paramètres les valeurs de a, b et c. Tout d'abord, définissez et implémentez la fonction rho, qui retourne la valeur du nombre \(\rho\).

Ensuite, définissez et implémentez la fonction n_solutions, qui retourne le nombre de solutions de l'équation définie par a, b et c.

Finalement, définissez et implémentez la fonction solution, qui retourne la solution d'une équation qui n'a qu'une seule solution et la plus petite solution d'une équation qui a deux solutions. La fonction ne sera jamais appelée pour une équation qui ne dispose pas de solution.

Les fonctions n_solutions et solution doivent impérativement faire appel à la fonction rho .

Pour résoudre l'exercice, vous aurez besoin de la fonction racine_carree, décrite ci-dessous. Cette fonction est déjà implémentée, vous ne devez donc pas l'écrire vous-même.

def racine_carree(n):
    """
    Calcule une racine carree
    pre: n est un nombre réel
         n >= 0
    post: retourne la racine carrée réelle de n
    """

Voici un exemple d'utilisation des fonctions que vous devez implémenter, avec l'équation \(x^2 + 2x + 1 = 0\) :

rho(1, 2, 1)
>>> 0

n_solutions(1, 2, 1)
>>> 1

solution(1, 2, 1)
>>> -1.0

Définissez et implémentez les fonction demandées