Guest User

Untitled

a guest
Feb 18th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. </html>
  2. <head>
  3. <title>Trabalho de Simulação</title>
  4. </head>
  5. <body>
  6. SementeA: <input type="text" id="sementeA" > <br>
  7. SementeB: <input type="text" id="sementeB" > <br>
  8. Ciclos: <input type="text" id="ciclos" > <br>
  9. <button onclick="javascript: executaAplicacao()">Executar Simulação</button><br>
  10. </body>
  11. <script type="application/javascript">
  12. a = 630360016
  13. m = 2147483647
  14. k = 5
  15. c = 1
  16. sementeA = 0
  17. sementeB = 0
  18. ciclos = 0
  19.  
  20. function getListGeradorRand2(semente, ciclos) {
  21. numeros = new Array()
  22. xn = semente
  23. for(i = 0; i < ciclos; i = i+1){
  24. xn = (a * xn) % m
  25. if (xn != 0)
  26. numeros[i] = xn
  27. else
  28. i = i-1
  29. }
  30. return numeros
  31. }
  32. function getListNumeroAleatorio(numeros,ciclos) {
  33. listNumeroAleatorio = new Array()
  34. for (i = 0; i < ciclos; i = i+1) {
  35. numero = numeros[i]
  36. listNumeroAleatorio[i] = (numero/m)
  37. }
  38. return listNumeroAleatorio
  39. }
  40.  
  41.  
  42. function simulacaoExemplo(geradorA, geradorB, ciclos) {
  43. tempoEntreChegadas = -10
  44. tempoMedioDeServico = -9
  45. intervaloMedioEntreChegadas = 0
  46. tempoMedioServico = 0
  47. tempoMedioDeResposta = 0
  48. tempoTotalDeOciosidade = 0
  49.  
  50. numeroAleatorioX = new Array(ciclos)
  51. numeroAleatorioS = new Array(ciclos)
  52. intervaloChegadas = new Array(ciclos)
  53. instanteDeChegada = new Array(ciclos)
  54. tempoDeServico = new Array(ciclos)
  55. inicioDoServico = new Array(ciclos)
  56. tempoDeFila = new Array(ciclos)
  57. fimDoServico = new Array(ciclos)
  58. tempoTotalNoSistema = Array(ciclos)
  59. ociosidade = Array(ciclos)
  60.  
  61. document.write("<table border='1px'>"+
  62. "<tr>"+
  63. "<td>cli</td>"+
  64. "<td>número aleatório</td>"+
  65. "<td>intervalo de chegada</td>"+
  66. "<td>instante de chegada</td>"+
  67. "<td>número aleatório</td>"+
  68. "<td>tempo de serviço</td>"+
  69. "<td>inicio do serviço</td>"+
  70. "<td>fim do serviço</td>"+
  71. "<td>tempo de espera na fila</td>"+
  72. "<td>tempo total do atendimento</td>"+
  73. "<td>tempo de ociosidade</td>"+
  74. "</tr>")
  75. numeroAleatorioX[i] = 0
  76. numeroAleatorioS[i] = 0
  77. intervaloChegadas[i] = 0
  78. instanteDeChegada[i] = 0
  79. tempoDeServico[i] = 0
  80. inicioDoServico[i] = 0
  81. tempoDeFila[i] = 0
  82. fimDoServico[i] = 0
  83. tempoTotalNoSistema[i] = 0
  84. ociosidade[i] = 0
  85.  
  86. for(i = 0; i < ciclos; i=i+1) {
  87. if (i < 5){
  88. document.write("<tr><td>" + (i + 1) + "</td>")
  89. }
  90. if (i != 0) {
  91. numeroAleatorioX[i] = geradorA[i]
  92. intervaloChegadas[i] = tempoEntreChegadas * (Math.log(geradorA[i]))
  93. instanteDeChegada[i] = instanteDeChegada[i-1] + intervaloChegadas[i]
  94. }else{
  95. numeroAleatorioX[i] = 0
  96. intervaloChegadas[i] = 0
  97. instanteDeChegada[i] = 0
  98. }
  99. numeroAleatorioS[i] = geradorB[i];
  100. tempoDeServico[i] = tempoMedioDeServico * (Math.log(geradorB[i]))
  101.  
  102. if (i != 0) {
  103. if (fimDoServico[i-1] > instanteDeChegada[i]){
  104. console.log("Entrou FDp")
  105. tempoDeFila[i] = fimDoServico[i-1] - instanteDeChegada[i]
  106. }else{
  107. tempoDeFila[i] = 0
  108. }
  109. inicioDoServico[i] = instanteDeChegada[i] + tempoDeFila[i]
  110. }else{
  111. tempoDeFila[i] = 0
  112. inicioDoServico[i] = 0
  113. }
  114.  
  115. fimDoServico[i] = inicioDoServico[i] + tempoDeServico[i]
  116.  
  117. console.log("i = " + i)
  118. console.log("FimDoServico[i-1] = " + fimDoServico[i-1])
  119. console.log("inicioDoServico[i] = " + inicioDoServico[i])
  120. console.log("instanteDeChegada[i] = " + instanteDeChegada[i])
  121. console.log("tempoDeFila[i] = " + tempoDeFila[i])
  122. console.log("tempoDeServico[i] = " + tempoDeServico[i])
  123. console.log("fimDoServico[i] = " + fimDoServico[i])
  124.  
  125. if (i != 0) {
  126. if (tempoDeFila[i] == 0){
  127. ociosidade[i] = instanteDeChegada[i] - fimDoServico[i - 1]
  128. }
  129. }else{
  130. ociosidade[i] = 0
  131. }
  132. tempoTotalNoSistema[i] = tempoDeFila[i] + tempoDeServico[i]
  133.  
  134. tempoMedioServico = tempoMedioServico + tempoDeServico[i]
  135. intervaloMedioEntreChegadas = intervaloMedioEntreChegadas + intervaloChegadas[i]
  136. tempoMedioDeResposta = tempoMedioDeResposta + tempoTotalNoSistema[i]
  137. tempoTotalDeOciosidade = tempoTotalDeOciosidade + ociosidade[i]
  138. if (i < 5) {
  139. document.write("<td>" + numeroAleatorioX[i]+
  140. "</td><td>" + intervaloChegadas[i] +
  141. "</td><td>" + instanteDeChegada[i] +
  142. "</td><td>" + numeroAleatorioS[i] +
  143. "</td><td>" + tempoDeServico[i] +
  144. "</td><td>" + inicioDoServico[i] +
  145. "</td><td>" + fimDoServico[i] +
  146. "</td><td>" + tempoDeFila[i] +
  147. "</td><td>" + tempoTotalNoSistema[i] +
  148. "</td><td>" + ociosidade[i] + "</td></tr>");
  149. }
  150. }
  151. document.write("</table>")
  152. document.write("<br>Tempo Médio Entre Chegadas: " + (intervaloMedioEntreChegadas / ciclos))
  153. document.write("<br>Tempo Médio de Serviço: " + (tempoMedioServico/ ciclos))
  154. document.write("<br>Tempo Médio de Resposta: " + (tempoMedioDeResposta / ciclos))
  155. }
  156.  
  157. function executaAplicacao(){
  158. sementeA = document.getElementById('sementeA').value;
  159. sementeB = document.getElementById('sementeB').value;
  160. ciclos = document.getElementById('ciclos').value;
  161.  
  162. listaA = getListGeradorRand2(sementeA, ciclos)
  163. listaB = getListGeradorRand2(sementeB, ciclos)
  164. newListaA = getListNumeroAleatorio(listaA, ciclos)
  165. newListaB = getListNumeroAleatorio(listaB, ciclos)
  166. simulacaoExemplo(newListaA, newListaB, ciclos)
  167. }
  168. </script>
  169. </html>
Add Comment
Please, Sign In to add comment