// # (gH) -_- nombresAuHasardDistincts.js ; TimeStamp (unix) : 16 Novembre 2020 vers 18:52 // ################################################ function tirageAleatoireSimple(valMax) { // ################################################ // on tire au hasard un seul nombre entre 1 et valMax // qu'on renvoie en fin de fonction if (valMax<1) { valMax = 1 } leNombre = Math.random() * valMax leNombre = Math.round(leNombre) if (leNombre<1) { leNombre = 1 } return(leNombre) } // fin de function tiragesAleatoireSimple // ################################################ function tiragesAleatoires(nt,pmax) { // ################################################ // on tire au hasard nt nombres entre 1 et pmax // qu'on affiche dans un textarea dont l'id est tirs // le formatage via la fonction sprintf() // est issu de https://github.com/alexei/sprintf.js/blob/master/src/sprintf.js -- merci Alexei ! res = "" nombres = [] for (i=1;i<=nt;i++) { f_i = sprintf("%3d",i) f_nt = sprintf("%3d",nt) f_pmax = sprintf("%3d",pmax) nbe = 1 tir = tirageAleatoireSimple(pmax) if (i>1) { while (nombres.indexOf(tir)>-1) { tir = tirageAleatoireSimple(pmax) ; nbe++ } ; // fin tant que } // fin si f_tir = sprintf("%3d",tir) f_nbe = sprintf("%3d",tir) res += " tirage " + f_i + " sur " + f_nt + " : " + f_tir + " au bout de " + f_nbe + " tirages\n" nombres.push(tir) } // fin pour i window.document.getElementById("tirs").value = res } // fin de function tiragesAleatoires // ################################################ function tirages() { // ################################################ // on commence par afficher la zone de résultats window.document.getElementById("resultats").setAttribute("class","visible") // on récupère la valeur de n, à tester comme entier entre 1 et 50, // on récupère la valeur de p, à tester comme entier entre 1 et 10, // puis on tire au hasard n nombres entre 1 et p // via la fonction précédente valn = window.document.getElementById("n").value if (valn=="") { window.document.getElementById("tirs").value = " la valeur de n est vide " return } // fin si // à cause du texte, plutot que : if (!Number.isInteger(valn)) { // on passe par une expression régulière if (!/^[0-9]+$/.test(valn)) { window.document.getElementById("tirs").value = " la valeur de n (" + valn + ") n'est pas un entier " return } // fin si valn = parseInt(valn) // efnin ! if ((valn<1) || (valn>50)) { window.document.getElementById("tirs").value = " n vaut " + valn + " ; c'est un entier qui n'est pas compris entre 1 et 50" return } // fin si valp = window.document.getElementById("p").value if (valp=="") { window.document.getElementById("tirs").value = " la valeur de p (nombre de tirages) est vide " return } // fin si if (!/^[0-9]+$/.test(valp)) { window.document.getElementById("tirs").value = " la valeur de p n'est pas un entier " return } // fin si if ((valp<1) || (valp>valn)) { window.document.getElementById("tirs").value = " p est un entier qui n'est pas compris entre 1 et " + valn return } // fin si tiragesAleatoires(valp,valn) } // fin de function tirages // ################################################ function videTirages() { // ################################################ window.document.getElementById("tirs").value = " " } // fin de function videTirages
Retour à la page principale de (gH)