Programmer un problem d'anniversair

  • Initiateur de la discussion Initiateur de la discussion Fredd
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Fredd

Guest
Bonjour à tous,

J'aimerais faire sous VBA un programme me donnant la solution d'un problème au sujet des anniversaires.

Le problème est le suivant: dans un groupe de 30 personnes, il faut trouver la probabilité que 2 personnes sont nées le meme jour (qu'elles aient leur anniversaire le meme jour, autrement dit).
Le nombre d'itérations doit etre de 10000 pour avoir une réponse valable.

Merci bcp
 
Bonsoir Fred,

Un petit problème de math, ca fait plaisir !
On va tester la puissance d'excel dans ce cas.

Bon je me lance, mais ca sera peut-être à améliorer.


1. On dit que chaque année, c'est 365 jours.
On va donc attribuer à chacun des 30 individus, un nombre entier aléatoire entre 1 et 365 (fonction rand)

2. On compte combien de fois chaque nombre de 1 à 365 apparaît.

3. On cherche le nombre qui apparaît le plus de fois (fonction max)


4. Si max > 1 alors testpositif = testpositif + 1

Mon test est positif si 2 personnes sont nées le même jour !!


5. On fait boucler les 4 premiers points de 1 à n (n étant le nombre d'itérations)


6. La probabilité est donc testpositif / n


Si ca te convient, on peut essayer de développer.


A+
David
 
Salut Fredd,

J'ai pris un grand plaisir à répondre à ce problème.

Admire la puissance de calcul d'excel, c'est étonnant !!!

Attention, si tu choisis de lancer la simulations pour 1000 itérations, tu en as quand même pour 9 secondes. Donc 10000 fois, ca fait quand même 1 minute 30 !!!


Enfin je ne sais pas la finalité de ton projet. Mais avec 20 itérations, tu obtiens déjà un résultat acceptable (assez proche de la réalité), enfin au sens de la loi normale bien sûr !!

😛

A+
David [file name=Book1_20060428135337.zip size=16889]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Book1_20060428135337.zip[/file]
 

Pièces jointes

Avec 1000, j'ai obtenu 0.716 et une deuxième 0.703.

Je dirai que la vérité se situe proche de ces résultats.


Avec 20 simulations, j'obtiens les résultats suivants :

0.5
0.55
0.7
0.85
0.85
0.7
0.65
0.85
0.65
0.75

La moyenne de ces résultats vaut 0.705. COmme quoi, avec 20 essais, c'est suffisant pour avoir une bonne idée du résultat. Dans ce cas, on s'en fout car une simulation ne coûte pas cher.

Mais si je veux vérifier que fabricant de vin met bien 0.75 L dans ses bouteilles. Je vais devoir en ouvrir quelques unes pour vérifier la contenance. Elles seront perdues et ca coûte cher. D'où l'intérêt de la loi normale qui permet de dire qu'avec n = 20 itérations, le résultats est acceptable.

A+
David
 
Bon, oublions le coup de racine de 2 / 2 !!!

Je classeur ci-joint montre la probabilité scientifique que 2 personnes au moins parmis 30 soient nées le même jour.

A bientôt.
David [file name=Book2_20060428142643.zip size=2798]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Book2_20060428142643.zip[/file]
 

Pièces jointes

Salut David,

Génial ton programme :woohoo:
La valeur théorique étant de 70,6% , tu en étais très proche ! Un grand merci B)
Si j'ai d'autres soucis, je te fais signe !
La prochaine étape est d'évaluer des options américaines en utilisant la simulation de monte carlo ... je ne sais pas trop comment m'y prendre (surtout niveau programmation) si t'as une idée (comme les tiennes sont excellentes ), fais moi signe !

Un tout grand merci
 
Re David,

Juste une dernière question concernant le programme des annif, si je souhaite modifier le problème, par exemple trouver qd 3 personnes ont leur annif' en meme temps, il y a moyen de modifier ton programme?

Merci d'avance
 
Bonjour Fred,

Dans le codes VBA, en modifiant le test de la boucle IF, tu peux y arriver.

Notre test est positif a condition que nous ayons au moins 3 personnes nées le meme jour. C'est à dire, qu'à chaque itérations, on regarde si notre maximum est strictement supérieur à 2 au lieu de 1.

Je viens de me documenter au sujet de la méthode Monte Carlo (Voir ce lien) :

Ouawww !! Des intégrales, des dérivés et tout et tout ... balaise !!!

Tu cherches à évaluer des options américaines, il s'agit bien des options côtées en bourse, avec valeur temps et valeur intraseque ?

Si oui, alors j'ai trouvé un autre site intéressant, mais ca semble vraiment balaise ton truc : http://cermics.enpc.fr/~bl/monte-carlo/td-1/index.html

Voilà ce que je te propose. Je pense que tu as déjà fait une étude sur cette méthode, ce qui n'est pas mon cas. Essaye de simplifier ton explication au maximum à l'aide d'un cas concret et simple. Nous verrons ensuite comment on peut aboutir au résultat via un programme VBA.

Tu doit faire cela dans un cadre scolaire, professionnel ou loisir ?

A+
David
 
Salut David,

Merci pour le complément sur le problème d'anniversaire, ton fichier est nickel et facile à comprendre.

Pour ce qui est des options américaines, c'est principalement essayer d'utiliser Monte Carlo pour évaluer l'option. Je dois dire que c assez compliqué !

Néanmoins j'ai trouvé un fichier excel qui utilise Monte Carlo pour des put et call mais Européens (je te l'ai mis en attch'). Le fichier est assez mal fait (pas de bouton, présentation bizarre mais il marche).

Je sais pas si ca peut t'aider mais bon je te le mets tjs en attach'.

Merci d'avance [file name=Montecarlooption.zip size=23001]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Montecarlooption.zip[/file]
 

Pièces jointes

Re-salut,

C'est assez bizarre en effet. Mais bon si ca remplit bien son rôle, c'st le principal et ca signifie que l'on a le nécessaire pour reproduire. Mais peux-tu me rafraichir la mémoire :

Asset price ( S ) -> OK
Strike price ( X ) -> OK
Time to maturity ( T ) -> OK
Risk free rate ( r )
Cost of carry ( b )
Volatility ( s ) -> OK
Number of simulations -> OK
Black-Scholes-Merton value
Standard Monte Carlo
Quasi-random Monte Carlo

Que signifie ceux où je n'ai pas mis OK ?

Il doit y avoir un delta, une elasticité etc ... mais je ne reconnais pas les termes employés !!!

A+
David
 
Salut david,

le risk free rate est le taux sans risque. On en a besoin pour calculer les options par la méthode de Black and Scholes. C'est le petit r dans la formule de d1= ln() + R ....

Le cost of carry je ne sais pas du tout. Ds le programme je le mettais tout le temps à zéro. En fait j'en ai pas besoin ! tu peux le supprimer ou ne pas en tenir compte.
 
Salut David,

Après plusieurs lectures de revues scientifiques, il apparait que d'évaluer une option américaine avec Monte Carlo est presqu'impossible et que si des programmes existent, ceux ci ne donnent des réponses surestimées à chaque fois.

Je voulais savoir s'il y avait moyen de transformer le fichier excel que je t'ai envoyé sur les options pour en faire une procédure avec bouton plutot que de faire des fonctions?

Merci d'avance
 
Bonsoir Fred, bonsoir le forum,

Il me semble avoir déjà vu la formule de calcul du prix théorique d'une option de type européen. Elle tenait sur une page entière, avec des grandes racines etc ... bref, un truc pour Einstein quoi !!!


En revanche j'ai bien dit 'théorique' dans ma phrase. En effet, dans la pratique, une option vaut à l'achat ce qu'en veut le vendeur qui demande le moins. Et à la vente, elle vaut ce qu'est prêt à donné l'acheteur qui demande le plus. Bref, c'est l'offre et la demande. L'impact psychologique des marchés sur les investisseurs n'est pas prévisible et n'est par conséquent pas inclus dans la grande formule due calcul du prix théorique.


Dans quel cadre, as-tu besoin de tout cela ? Si ce n'est pas indiscret. Moi-même j'ai trader avec des warrants et des options, notamment sur le CAC. Et mêm esi je n'en garde pas un très bon souvenir, ces produits me fascinent. Il évolue toujours dans le sens contraire de ce que l'on pense. Quand j'achète une option, elle perd de la valeur, et quand je la revend, elle en regagne. Je compare cela au déplacement sur les autoroutes. Quand je quitte une file qui semble bloquée, voilà qu'elle repart. Et bien sûr ma nouvelle voie va moins vite !!! Pfffff On nous surveille, je le sent ! je le sais !


:evil:


Concernant ton problème, Il est certainement possible de réaliser le programme comme tu l'entends. Cependant, les fonctions sont très bien et je pense qu'il faut les utiliser. Elles remplissent une tâche bien spécifique, et tu as confirmé qu'elles fonctionnent. Elles sont donc réutilisable à souhait et on va les réutiliser si nécessaire.

Dans la mesure où elles fournissent un résultat en temps réel dans des cases excel, où est l'intérêt d'avoir des boutons. Améliorer l'esthétique, le côté 'user-friendly' du fichier pourrait faire le même effet.

Mais peut-être que ta demande s'inscrit dans un projet plus vaste et que tu as des contraintes à respecter. Dans ce cas, je te propose de créér la forme, avec des textbox, des boutons, etc, tout ce que tu souhaites, et il ne devrait pas être difficile de finir le travail.

A bientôt,
David
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
12
Affichages
3 K
pinpon13
P
J
Réponses
8
Affichages
1 K
josef140
J
J
Réponses
13
Affichages
9 K
J
B
Réponses
3
Affichages
8 K
besdu06
B
G
Réponses
2
Affichages
2 K
goddavid
G
X
Réponses
2
Affichages
1 K
Xavier
X
J
Réponses
41
Affichages
6 K
Jocelyn
J
Retour