Valid XHTML    Valid CSS2    

Listing du fichier nombresAuHasardDistincts.js

 

00001     // # (gH) -_- nombresAuHasardDistincts.js ; TimeStamp (unix) : 16 Novembre 2020 vers 18:52
00002     
00003     // ################################################
00004     
00005     function tirageAleatoireSimple(valMax) {
00006     
00007     // ################################################
00008     
00009     // on tire au hasard un seul nombre entre 1 et valMax
00010     // qu'on renvoie en fin de fonction
00011     
00012      if (valMax<1) { valMax = 1 }
00013     
00014      leNombre = Math.random() * valMax
00015      leNombre = Math.round(leNombre)
00016     
00017      if (leNombre<1) { leNombre = 1 }
00018     
00019      return(leNombre)
00020     
00021     } // fin de function tiragesAleatoireSimple
00022     
00023     // ################################################
00024     
00025     function tiragesAleatoires(nt,pmax) {
00026     
00027     // ################################################
00028     
00029     // on tire au hasard nt nombres entre 1 et pmax
00030     // qu'on affiche dans un textarea dont l'id est tirs
00031     
00032     // le formatage via la fonction sprintf()
00033     // est issu de https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js -- merci Alexei !
00034     
00035      res = ""
00036      nombres = []
00037     
00038      for (i=1;i<=nt;i++) {
00039      f_i = sprintf("%3d",i)
00040      f_nt = sprintf("%3d",nt)
00041      f_pmax = sprintf("%3d",pmax)
00042      nbe = 1
00043      tir = tirageAleatoireSimple(pmax)
00044      if (i>1) {
00045      while (nombres.indexOf(tir)>-1) {
00046      tir = tirageAleatoireSimple(pmax) ;
00047      nbe++
00048      } ; // fin tant que
00049      } // fin si
00050      f_tir = sprintf("%3d",tir)
00051      f_nbe = sprintf("%3d",tir)
00052      res += " tirage " + f_i + " sur " + f_nt + " : " + f_tir + " au bout de " + f_nbe + " tirages\n"
00053      nombres.push(tir)
00054      } // fin pour i
00055     
00056      window.document.getElementById("tirs").value = res
00057     
00058     } // fin de function tiragesAleatoires
00059     
00060     // ################################################
00061     
00062     function tirages() {
00063     
00064     // ################################################
00065     
00066     // on commence par afficher la zone de résultats
00067     
00068      window.document.getElementById("resultats").setAttribute("class","visible")
00069     
00070     // on récupère la valeur de n, à tester comme entier entre 1 et 50,
00071     // on récupère la valeur de p, à tester comme entier entre 1 et 10,
00072     
00073     // puis on tire au hasard n nombres entre 1 et p
00074     // via la fonction précédente
00075     
00076      valn = window.document.getElementById("n").value
00077     
00078      if (valn=="") {
00079      window.document.getElementById("tirs").value = " la valeur de n est vide "
00080      return
00081      } // fin si
00082     
00083      // à cause du texte, plutot que : if (!Number.isInteger(valn)) {
00084      // on passe par une expression régulière
00085     
00086      if (!/^[0-9]+$/.test(valn)) {
00087      window.document.getElementById("tirs").value = " la valeur de n (" + valn + ") n'est pas un entier "
00088      return
00089      } // fin si
00090     
00091      valn = parseInt(valn) // efnin !
00092     
00093      if ((valn<1) || (valn>50)) {
00094      window.document.getElementById("tirs").value = " n vaut " + valn + " ; c'est un entier qui n'est pas compris entre 1 et 50"
00095      return
00096      } // fin si
00097     
00098      valp = window.document.getElementById("p").value
00099     
00100      if (valp=="") {
00101      window.document.getElementById("tirs").value = " la valeur de p (nombre de tirages) est vide "
00102      return
00103      } // fin si
00104     
00105      if (!/^[0-9]+$/.test(valp)) {
00106      window.document.getElementById("tirs").value = " la valeur de p n'est pas un entier "
00107      return
00108      } // fin si
00109     
00110      if ((valp<1) || (valp>valn)) {
00111      window.document.getElementById("tirs").value = " p est un entier qui n'est pas compris entre 1 et " + valn
00112      return
00113      } // fin si
00114     
00115      tiragesAleatoires(valp,valn)
00116     
00117     } // fin de function tirages
00118     
00119     // ################################################
00120     
00121     function videTirages() {
00122     
00123     // ################################################
00124     
00125      window.document.getElementById("tirs").value = " "
00126     
00127     } // fin de function videTirages

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)