Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#51 23-12-2020 16:15:37
- Lisou30000
- Membre
- Inscription : 06-12-2020
- Messages : 54
Re : [Python]
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
Re : [Python]
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