Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#51 23-12-2020 16:15:37

Lisou30000
Membre
Inscription : 06-12-2020
Messages : 54

Hors ligne

#52 23-12-2020 16:16:57

Lisou30000
Membre
Inscription : 06-12-2020
Messages : 54

Re : [Python]

Où il y a des ? C’est équivalent à Un

Hors ligne

#53 23-12-2020 20:02:53

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : [Python]

Re,

Où il y a des ? C’est équivalent à Un

Sur ton image, je ne vois aucun point d'interrogation.
Mais c'est bon, j'ai compris.

Cet exercice n'a rien à voir avec le précédent où on encadrait $\pi$.
La méthode de Héron est une très vieille méthode de calcul de la racine carrée et qui va très très vite.
Je l'ai déjà utilisée pour calculer le "nombre d'or" $ \phi$ : $\phi=\dfrac{1+\sqrt{5}}{2}$ avec 20000 décimales en 2 s en utilisant pour aller si loin dans les décimales le module decimal de Python .
Avec cette méthode calcule la racine carrée de 13 en 0,7 s avec 200 décimales...
Bon, avec les exemples fournis
1. C'est bien l.append(v)
2. Tu ajoutes sur la ligne juste avant le return avec la même indentation que lui : print(l)
Et voilà ce qu'on obtient :

>>> arc(3,4)
[1, 2.0, 1.75, 1.7321428571428572, 1.7320508100147274]
>>> arc(3,5)
[1, 2.0, 1.75, 1.7321428571428572, 1.7320508100147274, 1.7320508075688772]
>>> arc(13,3)
[1, 7.0, 4.428571428571429, 3.6820276497695854, 3.6063454894655185, 3.6055513629176015]
>>> arc(13,4)
[1, 7.0, 4.428571428571429, 3.6820276497695854, 3.6063454894655185, 3.6055513629176015, 3.6055512754639905]
>>>

A titre de comparaison 100 décimales de 13 grâce au module decimal de Python avec la méthode de Heron :
3.6055512754639892931192212674704959462512965738452462127104530562271669482930104452046190820184907177
0,34 s
Sans ce module decimal, le nombre de décimales ne peut pas dépasser 16...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#54 23-12-2020 21:24:45

Lisou30000
Membre
Inscription : 06-12-2020
Messages : 54

Re : [Python]

Je ne trouve pas ça

Hors ligne

#55 23-12-2020 21:28:03

Lisou30000
Membre
Inscription : 06-12-2020
Messages : 54

Hors ligne

#56 24-12-2020 13:01:08

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : [Python]

Bonjour,


Ça veut dire quoi précisément : je ne trouve pas ça ?
Je t'ai pourtant demandé :

2. Tu ajoutes sur la ligne juste avant le return avec la même indentation que lui : print(l)

Tu es bien sur la bonne ligne, mais c'est tout ce que tu as lu...
J'ai dit :
la ligne juste avant le return avec la même indentation que lui
Est-ce que c'est ce que tu as fait ?
Non !
Ton code :


        l.append((v))
        print(l)    
    return l

Ce que je t'ai demandé de faire :


        l.append((v))
    print(l)    
    return l

sur la même verticale !

Le print(l) parce que ton prof appelle la fonction comme ça :
arc(3,4)
et non avec
print(arc(3,4))

Mais il y a une incohérence :
Ecrire return l si tu ne mets pas print (l) dans la fonction, return l retourne bien l mais on n'en fait rien...
Et si comme sur le document, on tape :
>>> arc(3,4)
rien ne s'affiche...

En résumé, il y a donc deux solutions :
1ere solution

def arc(a,p):
    u=1
    v=(u+a/u)/2
    l=[u,v]
    while abs(v-u)> 10**-p:
        u=v
        v=(u+a/u)/2
        l.append(v)    
    return l

Et alors pour avoir l'affichage du prof il faudra écrire :
>>> print (arc(3,4))
Et l'affichage sera :

[1, 2.0, 1.75, 1.7321428571428572, 1.7320508100147274]
>>>

Mais sur le document de ton prod, il y seulement écrit arc(3,4) et non print arc(3,4))...

Deuxième solution (la bonne si tu veux respecter la présentation du dernier document de ton prof)

def arc(a,p):
    u=1
    v=(u+a/u)/2
    l=[u,v]
    while abs(v-u)> 10**-p:
        u=v
        v=(u+a/u)/2
        l.append(v)
    print(l)    
    return l

Et l'affichage est :

>>> arc(3,4)
[1, 2.0, 1.75, 1.7321428571428572, 1.7320508100147274]
>>> arc(3,5)
[1, 2.0, 1.75, 1.7321428571428572, 1.7320508100147274, 1.7320508075688772]
>>>

Et le l de return l ne sert à rien mais on s'en fiche...

N-B.
Une image s'il y a un long texte avec des symboles que tu ne sais pas reproduire : oui.
Mais là, Lisou, c'est du texte à l'écran :
- On le sélectionne
- On le copie
- On le colle dans son message
parce que je ne sais pas si tu te rends compte, que sinon, à chaque fois, je suis obligé de tout retaper...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#57 24-12-2020 14:12:17

Lisou30000
Membre
Inscription : 06-12-2020
Messages : 54

Re : [Python]

D’accord désolé et merci!

Hors ligne

#58 24-12-2020 15:09:45

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 946

Re : [Python]

Re,

Et cette fois, c'est bon ?
Un conseil très important : bien penser à l'indentation... un mauvais décalage à gauche et ton instruction est soit dans le bloc (et elle devrait pas. C'était le cas) soit elle n'y est pas (et elle devrait y être) et tu n'obtiens pas ce que tu attends, tout est faussé.
C'est vraiment la clef de voûte de Python : il repose là-dessus.
Affichage conforme, cette fois ?

J'ignore ce que vous avez déjà fait en classe, mais les exercices proposés par le prof et pris dans son bouquin  ne sont pas totalement évidents pour des grand débutants...

Courage !

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Pied de page des forums