Valid XHTML     Valid CSS2    


        //   # (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 gH    Retour à la page principale de   (gH)