Probleme de probabilités d'anniversaire
Résolu
annamir
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
loupius -
loupius -
Bonjour,
Écrire un programme C qui calcule et qui affiche les probabilités que deux personnes dans un groupe soient nées le même jour. La probabilité que deux personnes soient nées le même jour de l’année, pour un groupe de n personnes, est donnée par la formule suivante:
p(n) = 1 - 365/365 ´ 364/365 ´ 363/365 ´ ¼ ´ (365-n+1)/365
Ainsi, si n = 1, p(1) = 1 - 365/365 = 0 (ce qui est assez logique!);
si n = 2, p(2) = 1 - 365/365 ´ 364/365 = 0.002740; soit environ 0.27%,
si n = 3, p(3) = 1 - 365/365 ´ 364/365 ´ 363/365 = 0.008204; soit environ 0.82%,
etc.
exemple:
Probabilite que 2 anniversaires soient identiques dans un groupe de 4 personnes: 1.64%
Probabilite que 2 anniversaires soient identiques dans un groupe de 8 personnes: 7.43%
etc.
voilà ce que j'ai fait, dites moi ce que vous en pensez:
#include <stdio.h>
int main(){
double proba = 1;
int n, i;
printf ("Entrer le nombre de personnes: ");
scanf ("%d", &n);
for(i = 0; i <= n; i++)
proba = proba * (365 - i + 1)/365;
printf("\nPour %i personnes, la proba est de %.3f\n", n, 1 - proba);
}
Écrire un programme C qui calcule et qui affiche les probabilités que deux personnes dans un groupe soient nées le même jour. La probabilité que deux personnes soient nées le même jour de l’année, pour un groupe de n personnes, est donnée par la formule suivante:
p(n) = 1 - 365/365 ´ 364/365 ´ 363/365 ´ ¼ ´ (365-n+1)/365
Ainsi, si n = 1, p(1) = 1 - 365/365 = 0 (ce qui est assez logique!);
si n = 2, p(2) = 1 - 365/365 ´ 364/365 = 0.002740; soit environ 0.27%,
si n = 3, p(3) = 1 - 365/365 ´ 364/365 ´ 363/365 = 0.008204; soit environ 0.82%,
etc.
exemple:
Probabilite que 2 anniversaires soient identiques dans un groupe de 4 personnes: 1.64%
Probabilite que 2 anniversaires soient identiques dans un groupe de 8 personnes: 7.43%
etc.
voilà ce que j'ai fait, dites moi ce que vous en pensez:
#include <stdio.h>
int main(){
double proba = 1;
int n, i;
printf ("Entrer le nombre de personnes: ");
scanf ("%d", &n);
for(i = 0; i <= n; i++)
proba = proba * (365 - i + 1)/365;
printf("\nPour %i personnes, la proba est de %.3f\n", n, 1 - proba);
}
A voir également:
- Probleme de probabilités d'anniversaire
- Joyeux anniversaire journal de naissance gratuit a imprimer - Télécharger - Histoire & Religion
- Joyeux anniversaire en créole réunionnais - Forum Loisirs / Divertissements
- Joyeux anniversaire en créole guadeloupéen ✓ - Forum Loisirs / Divertissements
- Chanson pour sa soeur anniversaire - Forum Loisirs / Divertissements
- Pour l’anniversaire de raphaël, victoria et ses amis veulent lui offrir un cadeau en commun. quel service en ligne peut utiliser victoria pour collecter l’argent ? - Forum Loisirs / Divertissements
2 réponses
Salut,
Tu as fait des erreurs dans les indices de la boucle for. Et un petit oubli de return 0;
Voici le programme corrigé :
Tu as fait des erreurs dans les indices de la boucle for. Et un petit oubli de return 0;
Voici le programme corrigé :
#include <stdio.h> int main(void){ double proba = 1; int n, i; printf ("Entrer le nombre de personnes: "); scanf ("%d", &n); for(i = 0; i < n; i++) proba = proba * (365 - i)/365; printf("\nPour %i personnes, la proba est de %.2f%%\n", n, 100*(1 - proba)); return 0; }
Eh, j'te r'connais!
On va pas faire tous les exercices de ton bouquin!
C'est pas mal mais tu dois bien te rendre compte que tu n'obtiens pas le résultat escompté, d'où la conclusion: peut mieux faire (eh oui on corrige et on note ;-) ).
Je propose:
On va pas faire tous les exercices de ton bouquin!
C'est pas mal mais tu dois bien te rendre compte que tu n'obtiens pas le résultat escompté, d'où la conclusion: peut mieux faire (eh oui on corrige et on note ;-) ).
Je propose:
#include <stdio.h> int main() { double proba = 1.; int n, i; printf ("Entrer le nombre de personnes: "); scanf ("%d", &n); for (i = 0; i < n; i++) proba = proba * (365 - i)/365; printf ("\nPour %i personnes, la proba est de %.3f\n", n, (1 - proba)*100); return 0; }Mais c'est bien la dernière fois.