Bon, je ne suis pas mathématicien, ni élève, juste informaticien.
Je viens de voir la fonction suivante (en Java) dans le code d'un collègue.
public int randomLength( int max )
{
int i = nextInt( max );
if ( i == 0 ) return i;
int j = nextInt( max );
return i >= j ? i-j : j-i;
}
Sachant que nextInt( max ) rend un entier dans l'intervalle [0, max[ avec une distribution qui est censée être uniforme.
Autrement dit, on lance un dé à "max" faces, numérotées [0, max-1]. Si la valeur obtenue est 0, l'expérience rend 0. Si la valeur n'est pas 0, on relance le dé une seconde fois et l'expérience rend la valeur absolue de la différence entre les deux valeurs, qui est un entier dans [0, max-1[.
Personnellement, je préfère la formulation Java ... mais ce n'est pas la question.
Je cherche à déterminer la loi de probabilité. Autrement dit, calculer pour chaque x dans [0, max[ sa probabilité d'être rendu par la l'expérience ?
Je sèche même si, ayant fait quelques tests pour diverses valeurs de max, j'ai l'impression que la loi doit pouvoir s'exprimer assez simplement.
Visiblement :
- p(0) s'approche de 2/max quand max devient grand.
- p(max/2) semble être proche de 1/max.
- P(max-1) semble être proche de 1/(max*max).
Merci pour votre aide.
-----