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).

#76 10-01-2021 15:47:03

Devoir
Invité

Re : Devoir python

Je sais que l’algo 1 permet de calculer le nombre de couple de lapins mais comment justifier ?

#77 10-01-2021 16:20:16

Devoir
Invité

Re : Devoir python

l.append(c)

#78 10-01-2021 16:24:26

Devoir
Invité

Re : Devoir python

J’ai trouvé question3)b) maintenant il faut que je créer le fonction seuil j’ai un peu de mal.

#79 10-01-2021 17:01:48

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

Re : Devoir python

Re,

Et bien essaie, produis quelque chose...

Comment crois-tu que je sois sûr qu'un programme fonctionne ou non ?
La réponse est simple : moi, je le teste !
Toi, non ? Tu te contentes d'écrire du code et de me le donner en attendant que je te dise : c'est non ou ce n'est pas bon ?

@+


Arx Tarpeia Capitoli proxima...

En ligne

#80 10-01-2021 17:05:46

Devoir
Invité

Re : Devoir python

Je vous avoue que j’ai beaucoup de mal avec python et mon prof me donne des exercices qui sont compliqué. J’ai passé tout l’après midi hier sur mon exercice. Mon programme seuil doit contenir que la variable N donc à
a,b et c ne doivent pas être présent ?

#81 10-01-2021 17:15:55

Devoir
Invité

Re : Devoir python

https://www.cjoint.com/c/KAkqoj2pOC2
J’essaie petit à petit pouvez-vous me donner des indication s pour que je puisse corriger mes erreurs?

#82 10-01-2021 17:21:38

Devoir
Invité

Re : Devoir python

https://www.cjoint.com/c/KAkqtOn5vI2
Je pense avoir trouvé du coup c’est mieux comme cela mais suis-je obligé de mettre l=[0]?

#83 10-01-2021 17:25:20

Devoir
Invité

Re : Devoir python

Petit soucis lorsque je veux calculer la durée en mois pour 1million de couples de lapins j’écris dans la console Seuil(1000000) et rien n’apparaît

#84 10-01-2021 17:26:28

Devoir
Invité

Re : Devoir python

Ça marche que jusqu’à Seuil(1000)

#85 10-01-2021 19:12:10

Devoir
Invité

Re : Devoir python

J’y suis depuis et je vois pas comment changer cela.

#86 10-01-2021 19:52:55

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

Re : Devoir python

Bonjour,

J'ai un petit problème...
Dans ton exo il est écrit : $F_0=1$, ce n'est pas le plus courant, d'habitude on prend $F_0=0$...
cf https://fr.wikipedia.org/wiki/Suite_de_Fibonacci
Ça m'oblige à tout revérifier.

Concernant def seuil, tu dois t'inspirer de Fibo en le modifiant.
1. Tu n'as pas besoin de liste, tu vas supprimer tout ce qui concerne l et remplacer return l par return n...
2. Ce qui t'oblige juste après  def seuil(N) à ajouter n=0 (n sera le compteur de mois).
    On aura toujours a=0 et b =1
3. Tu ne vas pas utiliser une boucle for mais une boucle while (Tant que)
    Tu fournis le nombre N de couples voulu et tu calcules tant que c<N : ce qui signifie que dès que c>=N, on sort de la boucle while...
4. Dans la boucle while tu auras encore (pas de changement)  c=a+b, a=b et b=c.
    Mais tu dois ajouter ensuite le compteur n

Algo à traduire en Python :
def Seuil(N):
    a <--- 0
    b <--- 1
    n <--- 0
    Tant que c<N :
        c <--- a+b
        a <--- b
        b <--- c
        n <--- n+1
    return n

J'avais commencé à écrire ma réponse quand j'ai revérifié que l'exo disait $F_0 =1$ et je me suis interrompu pour faire des vérifications...
Et j'ai vu que tu tournais en rond, donc j'ai écrit autre chose.

Mais réfléchis à ça. :
Si tu demandes Fibo(12) tu auras :
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]

Si tu t"es servi de Fibo en gardant la boucle for dans ta fonction seuil, alors en tapant seuil(1000000) tu demandes la liste des résultats de 1 000 000 de mois, soit 83333 ans et 4 mois !
Tu crois que ça va marcher ?
Ta fonction seuil ne doit pas retourner la liste, juste le nombre de mois minimum alors que Fibo retourne la liste du nombre de couples

@+


Arx Tarpeia Capitoli proxima...

En ligne

#87 10-01-2021 20:40:33

Devoir
Invité

Re : Devoir python

J’ai bien compris, on me dit pourtant en tapant la fonction que « c referenced before assignment »

#88 10-01-2021 21:48:44

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

Re : Devoir python

Re,

Cela signifie que tu utilises c alors que tu ne l'as déclaré avant...
Mais je suis surpris parce que c=a+b est une déclaration...

Ah oui, j'ai pigé, dans mon algo, j'ai oublié de t'écrire de mettre  c=0, avant le while ...
C'est normal que ça couine :
l'algo dit : Tant que c<N... ou, i mais si on n'initialise pas c à 0 par ex (ou à ce que tu veux pourvu que ce soit inférieur à N), comme Python n'a pas trouvé c avant, il couine : Mais c'est quoi ce c ?

Donc, je répare l'oubli, je ne devrais pas faire 3 choses en même temps...
def Seuil(N):
    a <--- 0
    b <--- 1
    n <--- 0
    c <-- 0
    Tant que c<N :
        c <--- a+b
        a <--- b
        b <--- c
        n <--- n+1
    return n

Et moi, chez moi, j'ai écrit return n,c pour savoir et j'obtiens :
>>> seuil(10**6)
(30, 1346269)
>>>
donc après 30 mois, il y a 1 346 269 couples de lapins qui est bien supérieur à 1 000 000...

La valeur de c n'est pas demandée juste celle de n (mais pas interdite), on peut se contenter de return n
Toutes mes excuses.

@+


Arx Tarpeia Capitoli proxima...

En ligne

#89 10-01-2021 22:18:25

Devoir
Invité

Re : Devoir python

Oui mais ça m’a permit de voir sinon peut retourner aussi la valeur de c et d’être encore plus précis. Merci
Pouvez-vous me donner une piste pour l’enseignement que l’on peut tirer des algorithmes?

#90 11-01-2021 12:08:12

Devoir
Invité

Re : Devoir python

Je cherche encore svp si vous pourriez m’aider.

#91 11-01-2021 15:33:59

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

Re : Devoir python

Re,


Fibonacci
Alors retour sur la question à propos des deux algorithmes présentés et lequel des deux est le bon et pourquoi.
Si je regarde le 2, je vois :
c <--- a+b  : c  contient a+b
b <---  c     : b contient c
a <--- b      : a contient b

Ce qui signifie que a contient b qui contient c donc a et b contiennent c et au tour suivant lorsque l'on va remettre dans c le contenu de a plus le contenu de b, on va mettre dans c le double de sa valeur précédente.

a=0
b=1
1er tour :
c= 0+1 =1
b=c = 1
a= b = 1
2e tour
c= 1+1 =2
b=2
a =2
3e tour
c=a+b = 2+2 =4
On va donc avoir la suite des puissances de 2 : 1 2 4 8 16....
Ce n'est pas ce qui se passe avec la suite de Fibonacci où c à chaque tour est la somme de ses 2 valeurs précédentes... et comporte juste une interversion de deux lignes :
b <---  c     : b contient c
a <--- b      : a contient b
L'enseignement est qu'un algorithme (et donc un programme) doit être pensé soigneusement puis écrit en faisant attention à ne pas commettre d'erreurs mathématiques : un programme ne fera que ce que son code lui dira de faire, il ne pensera pas à notre place et ne corrigera pas nos erreurs.
S'il est sans faute, il exécutera très vite et sans erreur des calculs qui nous prendraient beaucoup de temps surtout si ces calculs sont répétitifs...
Ça te suffit ? J'ai fait attention à ne pas utiliser d'idées trop compliquées, les réponses des des élèves sur une question pareille ne peuvent être que "naïves"...
Et puis je te demande de comprendre ce que j'ai voulu dire et de ne pas recopier bêtement ce que j'ai écrit...
Moi, je pourrais montrer pourquoi les algos et la fonction concernant le voyage d'Aurélien sont mal foutus (et pourquoi, ça me fait râler).
Venant de toi, cela lui mettrait la puce à l'oreille et il finirait par tomber sur ce site et là, tu serais mal...

@+


Arx Tarpeia Capitoli proxima...

En ligne

#92 11-01-2021 15:52:25

Devoir
Invité

Re : Devoir python

Oui j’ai bien compris je reformule avec mes mots. Merci pour tout vous m’avez beaucoup aidé. Bonne journée à vous.

Pied de page des forums