luizaspan icon

[AULA CANZIAN] (pseudo)Random numbers (histograma)

luizaspan | PRO | 11/11/15 06:31:10 PM UTC | 0 ⭐ | 757 👁️ | Never ⏰ | []
JavaScript |

1.05 KB

|

None

|

0 👍

/

0 👎

<script>
 
// GERANDO NUMEROS ALEATORIOS E GUARDANDO E UM HISTOGRAMA:
 
// Math.random() devolve números float entre 0 e 1
 
// var x = Math.random();
// document.write(Math.sqrt(x));
 
var hst = new Array(30); // fazendo paple do float x[10]
 
for (var i=0; i<hst.length; i++) hst[i]=0; // construindo uma matriz com 10 elementos e enchendo de 0
 
var dx = 1/hst.length;
var N = 10000;
for (var i=0; i<N; i++) {
    var x = Math.sqrt(Math.random());
    for (var j=0; j<hst.length; j++) {
        if (x>=j*dx && x<(j+1)*dx) {
            hst[j]++;
        }
    }
}
 
for (var i=0; i<hst.length; i++) {
    document.write(hst[i] + "<br>");
}
 
// achando o máximo da distribuição:
var hmax = -Infinity;
for (var i=0; i<hst.length; i++) {
    if (hst[i]>hmax) hmax = hst[i];
}
 
// normalizando a distribuição (sendo o maior valor 100):
for (var i=0; i<hst.length; i++) {
    hst[i] = hst[i]/hmax * 100;
}
 
// graficando a distribuição:
for (var i=0; i<hst.length; i++) {
    for (var j=0; j<hst[i]; j++) {
        document.write("o");
    }
    document.write("<br>");
}
 
 
</script>

Comments