Python

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
Lulutomtom83
Messages: 2
Enregistré le: 05 Nov 2020, 10:49

Python

par Lulutomtom83 » 05 Nov 2020, 10:52

Bonjour ! J'ai un programme en python à remplir, mais je n'y arrive pas vraiment...
La consigne :
Il faut compléter le programme ci-dessous en python afin qu'il affiche tous les termes de cette suite :

La suite est :
{ Uo = 3, U1 = 1
{ Un+1 = 2Un-1 +Un

Et le programme à remplir est :

def u(n)
if ...........
return 3
elif n==1 :
return .......
return .........


J'ai calculé U2 = 1 , U3 = 3 et U4 = 5
Si vous pouviez m'aider en le remplissant ça m'aiderait énormément ?, merci beaucoup ! Bonne journée :)



hdci
Membre Irrationnel
Messages: 1962
Enregistré le: 23 Juin 2018, 16:13

Re: Python

par hdci » 05 Nov 2020, 11:57

Bonjour,

Pour commencer, regardons ce que vous avez calculé :

Comment faites-vous pour calculer ? (car )
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

Lulutomtom83
Messages: 2
Enregistré le: 05 Nov 2020, 10:49

Re: Python

par Lulutomtom83 » 05 Nov 2020, 20:01

Bonsoir,

déjà merci de votre réponse !
Alors effectivement je me suis rendue compte que j'avais mal calculé : U2=7, U3=9 et U4=23.

j'ai déjà complété cette petite partie du programme ( en espérant que cela soit juste ):

def u(n)
if n==0:
return 3
elif n==1:
return 1
return .........

mais je ne comprends pas ce qu'il faut retourner avec le dernier "return". de plus je ne vois pas vraiment comment ce programme ci-dessus à compléter pourrait me donner tous les termes de la suite. Je pense qu'il faut rajouter des étapes. pensez vous qu'il faut rajouter des étapes? (peut-être que je me trompe et que ce programme de base une fois bien rempli me permet d'avoir tous les termes de cette suite après tout)

bonne soirée à vous et merci de votre première réponse !

hdci
Membre Irrationnel
Messages: 1962
Enregistré le: 23 Juin 2018, 16:13

Re: Python

par hdci » 05 Nov 2020, 20:18

OK pour le début.

Pour le dernier return : revenons à la définition de la suite : la relation de récurrence est


C'est-à-dire, comme , on calcule les termes à partir du rang 2 en additionnant le précédent avec le double du précédent du précédent. On peut donc écrire à la place


Donc, dans le programme Python : si on a le return, si on a le return, sinon on est dans le cas , donc le return, c'est 2*u(n-2)+u(n). Ce qui donne (attention aux indentations
def u(n) :
if n==0:
return 3
elif n==1:
return 1
return 2*u(n-2)+u(n-1)

(Ce principe d'une fonction qui s'appelle elle-même s'appelle "récursivité". Cela fonctionne parce qu'il y a une condition d'arrêt, qui est ici n==0 ou n==1, la fonction ne s'appelle pas elle-même dans ce cas)
Par exemple, si on veut calculer u(4) :
  • comme 4>=2, on va appeler u(2) et u(3) pour calculer 2*u(2)+u(3)
    • pour u(2), on va appeler u(0) et u(1)
      • u(0) renvoie 3
      • u(1) renvoie 1
      • on a donc calculé pour u(2) : 2*3+1=7
    • pour u(3) on va appeler u(1) et u(2)
      • u(1) renvoie 1
      • u(2) va appeler u(0) et u(1)
        • u(0) renvoie 3
        • u(1) renvoie 1
        • on a donc calculé pour u(2) : 2*3+1=7
      • on a donc calculé pour u(3) : 2*1+7=9
    • On a donc calculé pour u(4) :2*7+9=23
Il n'y a que 10 types de personne au monde : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite