Premiers pas en JavaScript
16.5 nombre aléatoire
cuy copyleft
  See You Why?  

 


l'opérateur ternaire (16.3) | | exercices sur les IF imbriqués et l'aléatoire (16.8)

Contenu

 

 

I. Les conditions IF multiples et imbriquées

voir <<< séquence précédente

 

 

II. Les nombres aléatoires

Il est fréquent, pour rendre votre application plus réaliste d'envoyer des messages aléatoires différents au fil du temps. Cela évitera de répondre "Bravo !" à chaque bonne réponse donnée par votre lecteur, et "Faux, recommence" à chaque mauvaise réponse.

De même, si vous réaliser un test, il peut être bon de varier les questions et leur ordre d'un questionnaire à l'autre.

JS dispose d'une fonction préétablie qui vous permet cette variété de réactions.
Nous étudierons plus en détail l'objet Math au chapitre 34, mais nous croyons qu'il serait utile dès maintenant de présenter cette méthode préétablie de l'objet Math, qui permet de générer des nombres au hasard.

Math.random() génère un nombre aléatoire réel, compris entre 0 et 1.

A. l'emploi de la fonction (ou méthode) pure

Employée à l'état pur, cette méthode n'est pas forcément d'un grand usage.

Observons cependant la syntaxe :

À vous de tester cette méthode, appliquée ici dix fois par une boucle FOR qui sera détaillée dans le chapitre 19

Exemple

<html>
<body>

<h1>la fonction random</h1>
<script type="text/javascript">

for (i=1;i<=10;i++) {
    nbr = Math.random();
    document.write(nbr + "<br>");
}

</script>

</body>
</html>

 

Et, comme il n'est pas rare d'avoir à choisir des valeurs entières, soit inférieures à, soit comprises entre deux limites nous proposons la réflexion suivante :

B. la génération d'un entier naturel compris entre deux valeurs

Si tous les nombres doivent être supérieurs à une valeur minimale, nous ajouterons ce minimum à chaque nombre tiré au hasard, nous l'avons appelé mini ;
de plus, les nombres tirés au hasard doivent couvrir une plage et doivent être des entiers... or, la fonction random() ne génère que des nombres décimaux (réels) compris entre 0 et 1 ;
il semble qu'en multipliant le résultat de random() par le plus grand nombre de la plage, on obtienne une valeur comprise entre zéro et ce nombre... mais toujours avec des décimales à outrance... ;
on ne devrait alors plus que laisser tomber les chiffres après la virgule, c'est-à-dire prendre la valeur entière inférieure à la somme du minimum et du choix dans la plage.

Illustrons :
je veux tirer des nombres entre 50 et 1000,
la valeur mini est 50,
la plage est 1000 moins 50, donc 950;
je tire un nombre entre 0 et 950 en écrivant random() * 950 ;
j'ajoute le minimum 50 pour obtenir une valeur (avec décimales) et comprise entre 50,xyz et 1000,uvw
que j'arrondis au plus grand entier inférieur.

 

Exemple

<html>
<body>

<h1>la fonction random</h1>
<script type="text/javascript">

for (i=1;i<=20;i++) {
    nbr = Math.random();
    plage= nbr*950;
    tire = Math.floor(plage)+50;
    document.write(tire + "<br>");
}

</script>

</body>
</html>

 

Et voilà développée la fonction (ou méthode) de JS qui crée des nombres au hasard entre deux valeurs préétablies.

Comme cette fonction ne génère que des nombres de 50 à 1000, nous reprendrons ce script en permettant d'introduire les valeurs minimales et maximales en paramètres, pour que la fonction soit plus 'portable'... ce sera fait dans le chapitre 34 qui traite des objets mathématiques.

 

 

VIII. Exercices relatifs aux conditions IF imbriqués et l'aléatoire

voir suite >>>

 

 

IX. Test relatif aux conditions IF imbriqués et l'aléatoire

voir suite >>>

 

 


l'opérateur ternaire (16.3) | | exercices sur les conditions imbriqués (16.8)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_165_fonction_aleatoire.html

partager sur FaceBook...           consulter sur FaceBook...

 

copyleft
Des liens ne fonctionnent plus ?
Avez-vous des suggestions ?
des commentaires, des corrections, un encouragement... ?
Pour info : Non, il n'y a pas de version papier ou DOC, PDF, etc. de ces notes.


Envoyez-moi un E-Mail (cuy(point)w(at)skynet(point)be)

Attention (at) signifie @ et (point) signifie .

Accueil CUY = See you why?

Compteur gratuitEasyCounter     BelStat Monitored by BelStat - Your Site Counts
La 1 000 000e page a été visitée le 21 mai 2010.
La 2 000 000e page a été visitée ce 18 mars 2012, vers midi.
La 3 000 000e page a été visitée ce 7 janvier 2014 entre 18 h et 18 h 45,
La 4 000 000e page a été visitée ce 5 juin 2015 entre 15 h 49 et 15 h 52,
La 5 000 000e page a été visitée ce 29 aout 2017 après 23 h 30,
Et la 6 000 000e page visitée, trop tôt pour y penser ?
 
et, d'après BelStat, CUY est visité surtout en semaine, peu le weekend...
moins et irrégulièrement pendant les vacances :

visites sur 3 mois, de la mi octobre 2013 à la mi janvier 2014.
 
La 3 333 333e page visitée a eu lieu ce mardi 10 juin 2014, en début d'après midi...
La 3 666 666e page visitée a eu lieu ce dimanche 28 decembre 2014, vers 16 h...
Un tiers de million de pages visitées en 154 jours cela fait une moyenne de 2165 pages visitées par jour...
Deux tiers de million de pages visitées en 355 jours soit une moyenne de 1878 pages visitées par jour...
et seulement 1195 pages visitées quotidiennement pendant les vacances estivales
de la mi juin à la mi septembre 2014

Vous voulez lire quelques messages reçus ?
quelques encouragements ?
Cliquez ici


Fin septembre 2009, installation de ce compteur
qui ne compte chaque nouvel ordinateur visiteur qu'une seule fois
free counter
 
m-à-j du 22/11/2021 :

Depuis cette fin septembre 2009, parmi les 210 pays (sur 274 drapeaux connus) qui nous ont visité,
voici les 100 pays qui nous visitent le plus, 
Nos petits visiteurs, classés par date de visite, où un seul ordi nous a visité, sont :
199. Turkmenistan (TM May 10, 2017) ; 200. Lesotho (LS March 1, 2017) ;
201. Turks and Caicos Island (TC January 18, 2016
202. Cook Islands (CK September 19, 2015)  203. Faroe Islands (FO January 27, 2015
204. Virgin Islands American (VI November 12, 2014) ;
205. Belize (BZ September 29, 2014) ;206. Eswatini - Swaziland (SZ July 21, 2014) ;
207. Grenada (GD April 3, 2014) ; 208. Timor-Leste (TI March 29, 2014) ;
209. American Samoa (AS December 26, 2012) ; 210. Guyana (GY November 5, 2010).