Mathématiques

Question

Bonjour je suis en grosse difficulté pour cette exercice de maths pourriez vous m aidez sil vous plait ? merci d avance
Les questions en dessous de l exercice deux sont Que fait la commande « from math import * »? Pourquoi l’utilise-t-on
ici ?
(b) À quoi correspond l’instruction « if b == round(b,0): »?
(c) Zoé lit le code de la fonction et propose de réduire le nombre de tours de
boucle réalisés en remplaçant l’instruction « a**2 <= n » à la ligne 5 par
l’instruction « a**2 <= (n / 2) » .
i. Démontrez que le code fonctionne toujours correctement.
ii. Montrez que la modification ne réduit le nombre de tours de boucle
que dans les cas où la fonction renvoie la valeur « False ».
Bonjour je suis en grosse difficulté pour cette exercice de maths pourriez vous m aidez sil vous plait ? merci d avance Les questions en dessous de l exercice d

1 Réponse

  • Réponse :

    Explications étape par étape :

    1) Renvoie les carrés inférieur à un nombre n donné

    exemple pour n = 10 le  script renvoie

    >>> carre(10)

    0

    1

    4

    9

    >>>

    2)

    Que fait la commande « from math import * »?

    Elle importe le module math

    Pourquoi l’utilise-t-on ici ?

    pour utiliser la fonction sqrt (racine carrées)

    (b) À quoi correspond l’instruction « if b == round(b,0): »?

    test si b est entier  ( b est égal à son arrondi avec 0 chiffre derrière la virgule)

    (c) Zoé lit le code de la fonction et propose de réduire le nombre de tours de

    boucle réalisés en remplaçant l’instruction « a**2 <= n » à la ligne 5 par

    l’instruction « a**2 <= (n / 2) » .

    i. Démontrez que le code fonctionne toujours correctement.

    ii. Montrez que la modification ne réduit le nombre de tours de boucle

    que dans les cas où la fonction renvoie la valeur « False ».

    réalisation

    1er code

    >>> sommecarres(37)

    6.082762530298219

    6.0

    True

    >>>

    code modifié

    from math import *

    def sommecarres(n):

       a=0

       while a**2 <= n/2:

           b=sqrt(n- a**2)

           print(b)

           if b == round(b,0):

               return True

           a=a+1

       return False

    code modifié

    >>> sommecarres(37)

    6.082762530298219

    6.0

    True

    >>>

    1er code

    >>> sommecarres(150)

    12.24744871391589

    12.206555615733702

    12.083045973594572

    11.874342087037917

    11.575836902790225

    11.180339887498949

    10.677078252031311

    10.04987562112089

    9.273618495495704

    8.306623862918075

    7.0710678118654755

    5.385164807134504

    2.449489742783178

    False

    2eme code

    >>> sommecarres(150)

    12.24744871391589

    12.206555615733702

    12.083045973594572

    11.874342087037917

    11.575836902790225

    11.180339887498949

    10.677078252031311

    10.04987562112089

    9.273618495495704

    False

    >>> sommecarres(37)

    6.082762530298219

    6.0

    True

    >>>