Fibonacci

Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 02/12/2021 à 21:39


Bonjour,

Je me permets de vous solliciter parce que je suis désespéré. Je suis vraiment débutant avec Excel mais je compte apprendre peu à peu.

Voilà, je souhaite réaliser un fichier pour mes paris sportifs mais j’aurais besoin de votre aide pour me donner un petit coup de main car je suis “en rade” devant mon fichier. En fait je voudrais entrer la suite de Fibonacci (1 – 1 – 2 – 3 – 5 – 8 – 13 – 21 – 34 – 55 – 89…) dans une formule (sans VBA) pour les sommes à miser sur chaque pari en fonction du résultat “gagné” ou “perdu” du pari précédent. Je vais tenter de m’expliquer :

Je pense que vous connaissez la suite de Fibonacci… elle se fait en additionnant la somme des deux nombres précédents.

Ex :
0 + 1 = 1
1 + 1 = 2
1 + 2 = 3
2 + 3 = 5
3 + 5 = 8
5 + 8 = 13
8 + 13 = 21
13 + 21 = 34…etc

La suite pour parier est donc la suivante : (on enlève le zéro)

1 – 1 – 2 – 3 – 5 – 8 – 13 – 21 – 34 – 55 – 89…etc

C’est parti, je mise 1 €, je perds le pari → je fais un pas en avant (je vais au nombre suivant croissant), je mise donc à nouveau 1 €, je perds encore le pari → je refais un pas en avant donc je mise cette fois 2 €. Je perds → je mise 3 €, je perds encore → je mise 5 €, ensuite je mise 8 € puis 13 € et là enfin je gagne → donc cette fois je fais deux pas en arrière,(je recule de deux nombres) je mise donc 5 €… ensuite deux solutions :
– soit je gagne encore et donc je recule à nouveau de deux pas, je mise 2 €.
– soit je perds et je refais un pas en avant donc je mise à nouveau 8 €……… et ainsi de suite.
Je ne sais pas du tout si je me suis bien expliqué, je vous joins mon fichier que j’ai dû remplir manuellement car je ne trouve pas cette formule qui m’indiquerait automatiquement les sommes à miser après chaque pari.
À savoir aussi que par exemple si je me retrouve à miser 2 € et que je gagne, je joue ensuite 1 €, si je gagne encore je joue encore 1 € (le minimum à pouvoir miser) et là si je perds, je ne mise pas 2 € mais à nouveau 1 € (c’est très important, l’ordre de la suite doit être respecté). Ensuite seulement je joue 2 € si je perds encore.
Je me sens un peu confus, j’espère que vous comprendrez ma demande.
Dernière petite chose, je souhaiterais que la mise de départ, donc 1 €, soit la multiplication de mon capital initial par le pourcentage de ce dernier. (Comment l’intégrer en plus de la formule ?)
Voilà, j’espère que vous allez pouvoir m’aider.

Je vous remercie d’avance.

Cordialement.

Bicycle



Bipbipcoyote Bipbipcoyote
3 897 contributions
Membre depuis le 06/03/2001
Envoyé le 02/12/2021 à 22:14 Modifié par Bipbipcoyote


Bonjour,
Pour créer la suite, c'est assez facile
en A1 tu écris 0
en B1 tu places la formule =A1+1 ce qui donne 1
en C1 tu places la formule =B1+1 ce qui donne 2
en D1 tu places la formule = B1+A1 ce qui donne 3
Ensuite, tu te places en cellule D1 tu sélectionnes autant de cellules que tu veux vers la droite avec les touches Majuscule et la flèche de droite et quand la sélection est faite tu pousses sur les touches CTRL+D ce qui va recopier la formule qui se trouve en D1 , vu que les références dans la formule sont relatives, elles seront incrémentées ce qui crée la suite (tu retrouveras 21 en H1 avec la formule =F1+G1 )
Tu peux adapter la mise en place de la suite sur d'autres cellules, si tu préfères l'avoir en colonne plutôt qu'en ligne, il faut utiliser CTRL+B au lieu de CTRL+D pour recopier vers le bas

Ensuite comment comptabilises tu tes gains et tes pertes ? avec des dates ?
il n'y a pas ton fichier, place le sur cjoint et copie le lien ici
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 02/12/2021 à 23:06


Merci Bipbipcoyote pour ta réponse.
Je suis vraiment débutant et je patauge dans la semoule.
Voilà le fichier :
https://www.cjoint.com/c/KLcv5Lzymjk



Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 02/12/2021 à 23:07 Modifié par Bicycle74


https://www.cjoint.com/c/KLcv5Lzymjk

Bipbipcoyote Bipbipcoyote
3 897 contributions
Membre depuis le 06/03/2001
Envoyé le 03/12/2021 à 05:17 Modifié par Bipbipcoyote


Bonjour,
J'ai un peu survolé ton fichier, mais pour faire cela avec des formules, à ce stade de réflexion, cela ne me semble pas possible sans recourir au VBA car les mentions PERDU ou GAGNE peuvent apparaître aléatoirement, et il faut alors faire régresser le nombre d'occurrences
Par exemple,
je mets 0 en T6
si j'utilise la formule
En T7
=NB.SI(M$7:M7;"PERDU") ça compte les occurrences
que je recopie vers le bas
je retrouve les valeurs 1,2,3,4,5,6,;6,7,8,9,9....etc là on voit que j'ai un double 6 et un double 9 lorsque je rencontre la mention GAGNE
Si j'ordonne ta liste Fibonacci en Feuil2 (donc en Feuil 2 D6 , je mets 0 puis en dessous 1 puis 2 etc... jusque 29 (bonne chance pour oser parier 1/2 million)
et que j'utilise une formule qui ressemble à ceci =RECHERCHEV(T7;Feuil2!$D$6:$F$35;3;VRAI) T7 contient la formule NB.SI
et je recopie aussi vers le bas
je peux récupérer la valeur correspondante. Donc en face du 6 j'ai 8, en face du 7 j'ai 13, ce qui correspond à tes euros
je peux aussi dans une autre colonne faire régresser mon nb.si mais uniquement la première fois,
donc si je place la formule =SI(U8<>U9;0;2) en V9, (copie vers le bas) je vais obtenir des 0 et des 2
ensuite je régresse en W9
=SI(V7<>2;U9;T8-2)
Tu verras qu'en W15 je repasse bien à la valeur de 5 mais ensuite
et c'est ici que les formules montrent leurs limites car ce nombre d'occurrences est une variable, et il faut pouvoir la réinitialiser et ça ce n'est pas possible à ma connaissance avec une formule...elle continue avec la valeur 34 or elle devrait reprendre avec 8 qui est la suite de 5

Mais je vais étudier une solution en VBA et je te retransmettrais le fichier ici via cjoint
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 03/12/2021 à 07:37


Merci beaucoup Bipbipcoyote pour ton message.
Je vais essayer de comprendre tous les arguments de la réponse. Effectivement c'est pas facile avec cette suite de Fibonacci.
Encore merci en attendant, je regarde dès que je rentre à la maison.



Bipbipcoyote Bipbipcoyote
3 897 contributions
Membre depuis le 06/03/2001
Envoyé le 03/12/2021 à 13:06 Modifié par Bipbipcoyote


Bonjour,
J'ai un souci avec ta logique, car tu dis que dès que tu gagnes, tu fais -2 or si j'obtiens bien les mêmes résultats que toi de la ligne 7 à la ligne 45, ce n'est plus le cas en ligne 46, car tu as un GAGNE en ligne 45 avec une mise de 3 euros et tu remets 3 euros sur la ligne suivante (46) sur un PERDU, cela devrait être une mise de 1 Euros puisque après un GAGNE on fait -2
et bien entendu, cela provoque des différences sur toutes les lignes en dessous
regarde un peu le fichier

En fait si tu modifies l'une des données en colonne M cela recalcule le tout mais remets par exemple la même valeur en M7 (PERDU)
J'ai inscrit les résultats en colonne T pour pouvoir faire la comparaison
Le fichier sur cjoint
Pour visionner le code, fais ALT+F11 et à gauche tu fais un double clic sur Feuil1 j'ai ajouté des commentaires pour expliquer comme ça fonctionne..
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 03/12/2021 à 14:33


Bonjour,

Merci beaucoup Bipbipcoyote. Effectivement je me suis planté à la ligne 46, le résultat devrait bien être 1 € et non 3 €. J'ai regardé la page VBA, c'est très compliqué pour moi car je ne connais que très peu le langage VBA mais j'essaierai de me débrouiller avec.
C'est compliqué pour moi mais il faut que j'apprenne peu à peu.
Merci encore Bipbipcoyote pour ton dévouement.

Bicycle74



Bipbipcoyote Bipbipcoyote
3 897 contributions
Membre depuis le 06/03/2001
Envoyé le 03/12/2021 à 15:05


Bonjour,
ok alors, au lieu d'avoir les valeurs en colonne T tu peux les avoir en colonne L, dans le code VBA il suffit de changer
cel.Offset(0, 7) = fibo(Position) à chaque fois que tu le rencontres
en cel.Offset(0, -1) = fibo(Position)

En fait le code fait simplement une boucle sur les cellules remplies en colonne M et compte les mentions "PERDU" avec la variable "Position"... Cette variable qui prend tour à tour de la boucle différentes valeurs nous permet d'aller récupérer la valeur Fibonacci correspondante... Evidemment comme ce ne sont pas toutes des mentions "PERDU" on doit provoquer une rupture de l'incrémentation de Position, revenir à Position-2 quand on rencontre "GAGNÉ"
Ensuite on doit aussi traiter les exceptions...
- la variable Position ne peut jamais être négative car sinon on ne peut pas s'en servir pour une recherche dans l'Array
- On doit réinitialiser Position à 1 lorsqu'un "PERDU" succède à un "GAGNÉ" et que ce "GAGNÉ" est déjà à 1 sinon on obtient aussi un négatif
Visitez mon Site Google est mon ami, il répond mieux que moi, posez lui d'abord vos questions
Bicycle74
7 contributions
Membre depuis le 02/12/2021
Envoyé le 03/12/2021 à 15:41


Bonjour,

Je pense comprendre à peu près ton explication. Je vais essayer de me dépatouiller avec tes conseils. Je te remercie encore, c'est sympa.



Discussion trop ancienne

Cette discussion a été automatiquement fermée car elle n'a plus reçue de nouveau message depuis trop longtemps.

Nous vous suggérons de créer un nouveau message

« Retour sur la liste des messages de ce forum