Quelqu'un pourrait-il m'aider à créer un script Matlab prenant en entrée le nombre d'élèves d'une classe (45) se partageant des cadeaux et donnant en sortie la probabilité que personne ne reparte avec son cadeau ?
Sur papier j'ai le raisonnement( j'ai pris l'évènement contraire et appliqué la formule du crible) mais Matlab et moi...n'en parlons pas !
Bonsoir,
C'est quoi le but de ton programme ? ( quelles sont les données qui vont évoluer ? )
Etant nul en proba, si tu me donne ton raisonnement (avec les formules ) je peux essayer de te faire un truc avec matlab
function s=probacadeau(m,n)
t=1:n;
a=0;
for l=1:m
b=1;
for k=1:n
z=floor((n+1-k)*rand+k);
c=t(z);
t(z)=t(k);
t(k)=c;
end
for p=1:n
if t(p)==p
b=0;
end
end
a=a+b;
end
s=a/m;
m étant le nombre de fois où l'opération est répétée (par exemple 1000), n est le nb d'enfants (e.g 45)
Mon nom de prog est essai24
essai24(10000,45) renvoie par exemple: 0.3806 ou 0.3658
whaou..je comprends un peu le principe mais il y a des trucs qui m'échappent un peu..
Peux-tu m'expliquer quelques trucs ?
Tout d'abord je ne comprends pas très bien l'initialisation avec t=1:n je ne vois pas où il intervient.
Puis surtout qu'elle action précise désigne z=floor((n+1-k)*rand+k);
Merci d'avance,
kkk
t=1:n permet de créer un vecteur de longueur n tel que t(1)=1...t(n)=n. Les cases représentent les numéros des cadeaux.
A la première étape (k=1), on prend un nombre au hasard entre 1 et n, par exemple on tombe sur 5. On échange ensuite t(1) et t(5). Tu as donc dans la première case de ton tableau le numéro du cadeau choisi par le premier élève.
OK? A la k-ième étape, tu ne peux pas prendre un chiffre des k-1 premières cases, puisque ces cadeaux ont déjà été pris. Donc tu prends la partie entière (floor) d'un nombre aléatoire compris entre k et n, ce qui correspond à (n+1-k)*rand+k Quand k est très proche de 1, cela vaut n
Quand k est très proche de zéro cela vaut k. Et tu fais l'échange entre le contenu des deux cases. Une fois cette boucle terminée, la boucle correspondant à
for p=1:n
if t(p)==p
b=0;
end
est le test pour savoir si qqn est parti avec son cadeau ou pas. Pour le reste, réfléchis un peu, teste sur un cas simple, tu comprendras rapidement (je vais quand même pas faire tout le boulot, je partage! )
merci beaucoup, pfioouu..le jour où je penserais à tout ça !
Est-ce que "a" donne le nombre de cas favorables, c'est à dire les élèves qui ne repartent pas avec leur cadeau ? Et m le nombre d'issues possibles comme on a l=1:m ?
Du coup "s" donne bien la probabilité que personne ne reparte avec son cadeau...
Encore merci pour toutes ces explications
kkk
a est effectivement le nombre de fois où personne ne part avec son cadeau. Pour avoir une probabilité fiable, il faut réitérer plusieurs fois l'algorithme, d'où la boucle for l=1:m, qui permet d'effectuer m fois l'algorithme, c'est à dire la distribution de cadeau. Si m =10000 et a=3627, tu auras une proba de a/m ,s=0.3627,i.e nb de cas favorables/nb de cas en tout.
Bonjour,
Je suis en train de déterminer la probabilité qu'aucune personne ne reparte avec son cadeau lors de la répartion de 45 cadeaux entre 45 personnes.
J'ai utilisé l'évènement contraire puis appliqué la formule du crible.
J'arrive a p(A) (la probabilité cherchée) =
1-(somme de k=1 à 45 de (-1)^k-1/k!) j'aimerais simplifier par la valeur de la somme mais c'est la détermination de la raison mais j'ai un peu de mal.
Pouvez-vous m'aider ?
merci
*** message déplacé ***
Je m'aperçois d'ailleurs que j'avais raconté n'importe quoi sur l'autre topic en balançant (44/45)⁴45 mais en fait c'est complètement faux.
*** message déplacé ***
bonsoir tous les 2,en ecrivant la somme complete c'est a dire tous les terme que l'on obtient par la somme et en appliquant une simplification j'obtiens comme resultat p(A)= somme de k=1 à 22 de 1/(2k)! moins la somme de k=1 à 22 de 1/(2k+1)!
mais il possible que je me sois trompé
bonjour
je trouve p(A)=de k=0 à n)(-1)k/k!
en cherchant le nombre de permutations sans points fixes et en utilisant bien sur la formule du crible
cela ne s'arrange pas on peut seulement remarquer que si n tend vers oo lim p(A)=1/e
si Xnest la variable aléatoire égale au nombre de personnes repartant avec leur cadeau
p(Xn=k)=1/k!de i=0 à n-k(-1)i/i!
pour 0k
n sauf erreur de ma part c'est la loi de Monmort
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :