Advertisement
luizaspan

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

Nov 11th, 2015
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script>
  2.  
  3. // GERANDO NUMEROS ALEATORIOS E GUARDANDO E UM HISTOGRAMA:
  4.  
  5. // Math.random() devolve números float entre 0 e 1
  6.  
  7. // var x = Math.random();
  8. // document.write(Math.sqrt(x));
  9.  
  10. var hst = new Array(30); // fazendo paple do float x[10]
  11.  
  12. for (var i=0; i<hst.length; i++) hst[i]=0; // construindo uma matriz com 10 elementos e enchendo de 0
  13.  
  14. var dx = 1/hst.length;
  15. var N = 10000;
  16. for (var i=0; i<N; i++) {
  17.     var x = Math.sqrt(Math.random());
  18.     for (var j=0; j<hst.length; j++) {
  19.         if (x>=j*dx && x<(j+1)*dx) {
  20.             hst[j]++;
  21.         }
  22.     }
  23. }
  24.  
  25. for (var i=0; i<hst.length; i++) {
  26.     document.write(hst[i] + "<br>");
  27. }
  28.  
  29. // achando o máximo da distribuição:
  30. var hmax = -Infinity;
  31. for (var i=0; i<hst.length; i++) {
  32.     if (hst[i]>hmax) hmax = hst[i];
  33. }
  34.  
  35. // normalizando a distribuição (sendo o maior valor 100):
  36. for (var i=0; i<hst.length; i++) {
  37.     hst[i] = hst[i]/hmax * 100;
  38. }
  39.  
  40. // graficando a distribuição:
  41. for (var i=0; i<hst.length; i++) {
  42.     for (var j=0; j<hst[i]; j++) {
  43.         document.write("o");
  44.     }
  45.     document.write("<br>");
  46. }
  47.  
  48.  
  49. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement