code utilisé: Array() , push() , sort() , reset()

Statistiques sur des lancers répétés de piéces

Simulation

L'épreuve consiste à lancer une pièce successivement 100 fois (n=100) , on appelle succès obtenir face et on appelle résultatrésultat le nombre de succès (c'est un entier compris entre 0 et 100).

On va simuler 80 fois cette épreuve, on va obtenir une série statistique de 80 nombres et on va décrire cette série statistique en donnant son minimum, maximum, premier et quatrième quartile, premier et neuvième quartile et sa médiane.

La machine

En cliquant sur Nouvelle série statistique de 80 résultats, vous obtenez les indicateurs de positions utiles pour faire un diagramme en boîte.



minimum
premier décile
premier quartile
médiane
troisième quartile
neuvième décile
maximum

On signale avec une étoile les cas où le minimum est strictement inférieur à 35 ou le maximum est strictement supérieur à 65. On constate que l'on obtient très rarement moins de 30 face ou plus de 70 face

Pourtant Chuck Norris est capable d'obtenir 100 face… (voir la capture d'écran ci-contre).


le code


<script type="text/javascript">
function lancer()
	{
	return Math.floor(0.5+Math.random());
	}

function bern() 
	{	
	var resultat= new Array();
	var k=0;
	for(k=1;k<=80;k++)
		{
		var succes=0;
		var m=0;
		for(m=1;m<=100;m++)
			{
			succes=succes+lancer();
			}
		resultat.push(succes);
		}
	resultat.sort(function(x,y){return x-y});
	document.machineBern.minimum.value=resultat[0];
	document.machineBern.maximum.value=resultat[79];
	document.machineBern.d1.value=resultat[7];
	document.machineBern.d9.value=resultat[72];
	document.machineBern.q1.value=resultat[19];
	document.machineBern.q3.value=resultat[59];
	document.machineBern.med.value=(resultat[39]+resultat[40])*0.5;
	document.machineBern.alertminimum.value=resultat[0]<35? "*":"";
	document.machineBern.alertmaximum.value=resultat[79]>65? "*":"";
	}
</script>  
 

commentaire

En orange, on découvre deux nouvelles méthodes de l'objet Array :push() qui ajoute ajoute un (ou des ) élément en fin de tableau et la méthode sort() qui range les les éléments d'un tableau dans l'ordre croissant. Ici, il faut rajouter function(x,y){return x-y} entre les parenthèses car sinon on aurait un tri alphabétique et non numérique.

On a créé un tableau résultat et à pour chaque valeur de k, on ajoute un terme au tableau. Quand tout est fini, on trie le tableau et on n'oublie pas que le premier terme du tableau s'appelle resultat[0]

En jaune, deux test avec la syntaxe test ? valeur si vrai : valeur si faux