Algorithme
Fermé
walidou*verrati
Messages postés
5
Date d'inscription
lundi 26 octobre 2015
Statut
Membre
Dernière intervention
26 octobre 2015
-
26 oct. 2015 à 18:05
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 26 oct. 2015 à 22:38
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 26 oct. 2015 à 22:38
A voir également:
- Algorithme
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme maximum de 3 nombres ✓ - Forum Algorithmes / Méthodes
- Ecrire un algorithme qui permet de resoudre ax²+bx+c=0 - Forum Programmation
4 réponses
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
26 oct. 2015 à 18:18
26 oct. 2015 à 18:18
'lut, aux premiers abords c'est possible:
Mais en pratique il nous faut une variable supplémentaire pour stocker la valeur future de
Donc en fait, non.
-
i
, l'itération à laquelle on se trouve -
f1
, qui vautfib(i-1)
, c'est à dire la valeur précédente -
f2
, qui vautfib(i-2)
, la valeur précédente de f1
Mais en pratique il nous faut une variable supplémentaire pour stocker la valeur future de
f1avant qu'on ne fasse tourner les valeurs précédentes avec
f2 = f1.
Donc en fait, non.
walidou*verrati
Messages postés
5
Date d'inscription
lundi 26 octobre 2015
Statut
Membre
Dernière intervention
26 octobre 2015
26 oct. 2015 à 19:34
26 oct. 2015 à 19:34
!! mais soit disons ça ,, comment on stocke la somme des termes f1 et f2 ,, f1+f2?
walidou*verrati
Messages postés
5
Date d'inscription
lundi 26 octobre 2015
Statut
Membre
Dernière intervention
26 octobre 2015
26 oct. 2015 à 20:24
26 oct. 2015 à 20:24
et si voulez écrivez moi un petit algorithme pour mieux comprendre votre principe !!! et mercii beaucoup
Utilisateur anonyme
26 oct. 2015 à 19:58
26 oct. 2015 à 19:58
Bonsoir, on n'est pas là non plus pour faire le travail à ta place.
Tu peux tenter d'écrire quelque chose et on te diras si ça marche ou pas.
Tu peux tenter d'écrire quelque chose et on te diras si ça marche ou pas.
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
26 oct. 2015 à 20:59
26 oct. 2015 à 20:59
Bonjour,
"3 variables dans la déclaration"
Est-ce que l'on compte le paramètre de la fonction ?
Genre, si je fais
PS. Est-ce que l'on demande aussi à ce que l'algorithme soit efficace ?
Parce que celui-ci ne l'est pas vraiment... mais il a moins de 3 variables !
"3 variables dans la déclaration"
Est-ce que l'on compte le paramètre de la fonction ?
Genre, si je fais
fibo(n)avec juste
n, ça fait 0 ou 1 ?
int fibo(int n) { return n < 2 ? 1 : fibo(n - 1) + fibo(n - 2); }
PS. Est-ce que l'on demande aussi à ce que l'algorithme soit efficace ?
Parce que celui-ci ne l'est pas vraiment... mais il a moins de 3 variables !
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 26/10/2015 à 21:17
Modifié par KX le 26/10/2015 à 21:17
Sinon de manière optimisée on peut faire ça avec 2 variables (3 si on compte n).
Remarque :
Je code en Java, d'autres langages pourraient ne pas accepter cette écriture.
int fibo(int n) { int f = 1; for (int f2 = 0; n > 0; n--, f = f2 + (f2 = f)); return f; }
Remarque :
Je code en Java, d'autres langages pourraient ne pas accepter cette écriture.
walidou*verrati
Messages postés
5
Date d'inscription
lundi 26 octobre 2015
Statut
Membre
Dernière intervention
26 octobre 2015
>
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
26 oct. 2015 à 22:06
26 oct. 2015 à 22:06
merci bcp ,, on a pas encore étudier le java ,, on est en pascal c tt c prk j'ai pas bien compris cette solution!
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
26 oct. 2015 à 22:38
26 oct. 2015 à 22:38
Perso, je ne suis pas convaincu que ce soit que la faute du langage...
On peut faire exactement pareil avec Pascal pour la première fonction.
Remarque : même question que tout à l'heure, est-ce que ce code déclare 0 variable, 1 variable (en comptant n), ou 2 (avec en plus la valeur result en Pascal) ?
Pour ma deuxième proposition, ce n'est pas adaptable mais il est tout à fait possible de descendre à 2 variables aussi (3 ou 4 selon comment on compte).
On peut faire exactement pareil avec Pascal pour la première fonction.
function fibo(n:integer):integer; begin if (n < 2) then result := 1 else result := fibo(n-1) + fibo(n-2) end;
Remarque : même question que tout à l'heure, est-ce que ce code déclare 0 variable, 1 variable (en comptant n), ou 2 (avec en plus la valeur result en Pascal) ?
Pour ma deuxième proposition, ce n'est pas adaptable mais il est tout à fait possible de descendre à 2 variables aussi (3 ou 4 selon comment on compte).
26 oct. 2015 à 20:16