Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Algorithme de nombre Fibonacci

Posté par
tyson9
11-04-19 à 00:16

Bonjour, Bonjour tout le monde!
J'espère que vous allez bien.
Je veux savoir comment écrire un algorithme qui peut calculer le plus petit nombre Fibonacci qui est supérieur à 1000.
J'espère que vous allez m'aider à écrire cet algorithme.
Merci d'avance pour votre aide!

*****message déplacé, merci de ne pas poster n'importe où****

Posté par
carpediem
re : Algorithme de nombre Fibonacci 11-04-19 à 07:50

salut

ce sujet n'a rien à faire dans ce forum ...

et il a été traité tellement sur internet ...

ensuite il suffit d'écrire la suite d'instructions "en français" à partir de la définition de la suite ...

Posté par
mathafou Moderateur
re : Algorithme de nombre Fibonacci 12-04-19 à 11:36

Bonjour,
Vu l'absence totale de suivi de la part du demandeur on peut s'amuser ...

on peut calculer ça en calculant le plus petit entier > (log(1000)+log(√5))/log(φ) + 0.5
φ étant le nombre d'or (1+√5)/2


(on peut remplacer 1000 par ce qu'on veut pour trouver le plus petit nombre de Fibonacci supérieur à ce qu'on veut)
la base du logarithme importe peu, avec le logarithme décimal log(1000) = 3

je ne pense pas que ce soit ce qui est demandé comme méthode de calcul

Posté par
mathafou Moderateur
re : Algorithme de nombre Fibonacci 12-04-19 à 11:42

ça donne le rang n du nombre cherché dans la suite, pas le nombre lui même, mais son calcul (direct), utilise la formule qui a permis d'obtenir la formule que j'ai donnée

Fn est l'entier le plus proche de \dfrac{\varphi^n}{\sqrt{5}}

Posté par
carpediem
re : Algorithme de nombre Fibonacci 12-04-19 à 14:11

ouais !!!

Posté par
flight
re : Algorithme de nombre Fibonacci 02-06-19 à 16:51

salut

j'ai fait ceci sur excel vba pour te donner une idée :

Citation :

Sub Fibonacci()

w = "b"

Do

For i = Len(w) To 1 Step -1 'lecture de w sans en changer le contenu
    If Mid(w, i, 1) = "b" Then
       q = q & "a"
    End If
    If Mid(w, i, 1) = "a" Then
       q = q & "a" & "b"
    End If
Next
p = p + 1
w = q
z = z & "," & Len(w)
s = Split(LTrim(z), ",")
q = ""
Loop Until s(p) > 1000
MsgBox "La plus petite valeur est :" & s(p) 'retourne la plus petite  valeur superieure à 1000
MsgBox "La chaine coresspondante est :" & Mid(z, 2, Len(z))  'retourne la chaine de valeur jusqu'a la plus petite valeur superieure à 1000
End Sub

Posté par
flight
re : Algorithme de nombre Fibonacci 02-06-19 à 16:54

ca me donne  comme plus petite valeur 1597  et comme sequence  :
1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597

Posté par
carpediem
re : Algorithme de nombre Fibonacci 02-06-19 à 18:27

ouais ... mais comme on comprend pas grand chose à vba ... (en tout cas pour ma part )

algo "très proche de python" :

read a, b,n
fibo = [a, b]
i = 1
while i < n - 1
    fibo.append(fibo[i] + fibo[i - 1])
    i = i + 1
write fibo (n - 1)


REM : une liste est indicée à partir de 0

à vérifier dans les détails bien sur ...

la liste fibo contient tous les termes jusqu'au rang n voulu

si on ne veut que le terme de rang n

read a, b, n
i = 1
while i < n
    a, b, i = b, a + b, i + 1
write b


à vérifier dans les détails bien sur ...

Posté par
mathafou Moderateur
re : Algorithme de nombre Fibonacci 02-06-19 à 20:08

mais on veut Fi > 1000
donc un while a et pas un while i

Posté par
carpediem
re : Algorithme de nombre Fibonacci 02-06-19 à 20:19

ha mais oui !!! merci mathafou

même pas besoin de n ... éventuellement de i pour avoir son rang ...

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !