Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- </html>
- <head>
- <title>Trabalho de Simulação</title>
- </head>
- <body>
- SementeA: <input type="text" id="sementeA" > <br>
- SementeB: <input type="text" id="sementeB" > <br>
- Ciclos: <input type="text" id="ciclos" > <br>
- <button onclick="javascript: executaAplicacao()">Executar Simulação</button><br>
- </body>
- <script type="application/javascript">
- a = 630360016
- m = 2147483647
- k = 5
- c = 1
- sementeA = 0
- sementeB = 0
- ciclos = 0
- function getListGeradorRand2(semente, ciclos) {
- numeros = new Array()
- xn = semente
- for(i = 0; i < ciclos; i = i+1){
- xn = (a * xn) % m
- if (xn != 0)
- numeros[i] = xn
- else
- i = i-1
- }
- return numeros
- }
- function getListNumeroAleatorio(numeros,ciclos) {
- listNumeroAleatorio = new Array()
- for (i = 0; i < ciclos; i = i+1) {
- numero = numeros[i]
- listNumeroAleatorio[i] = (numero/m)
- }
- return listNumeroAleatorio
- }
- function simulacaoExemplo(geradorA, geradorB, ciclos) {
- tempoEntreChegadas = -10
- tempoMedioDeServico = -9
- intervaloMedioEntreChegadas = 0
- tempoMedioServico = 0
- tempoMedioDeResposta = 0
- tempoTotalDeOciosidade = 0
- numeroAleatorioX = new Array(ciclos)
- numeroAleatorioS = new Array(ciclos)
- intervaloChegadas = new Array(ciclos)
- instanteDeChegada = new Array(ciclos)
- tempoDeServico = new Array(ciclos)
- inicioDoServico = new Array(ciclos)
- tempoDeFila = new Array(ciclos)
- fimDoServico = new Array(ciclos)
- tempoTotalNoSistema = Array(ciclos)
- ociosidade = Array(ciclos)
- document.write("<table border='1px'>"+
- "<tr>"+
- "<td>cli</td>"+
- "<td>número aleatório</td>"+
- "<td>intervalo de chegada</td>"+
- "<td>instante de chegada</td>"+
- "<td>número aleatório</td>"+
- "<td>tempo de serviço</td>"+
- "<td>inicio do serviço</td>"+
- "<td>fim do serviço</td>"+
- "<td>tempo de espera na fila</td>"+
- "<td>tempo total do atendimento</td>"+
- "<td>tempo de ociosidade</td>"+
- "</tr>")
- numeroAleatorioX[i] = 0
- numeroAleatorioS[i] = 0
- intervaloChegadas[i] = 0
- instanteDeChegada[i] = 0
- tempoDeServico[i] = 0
- inicioDoServico[i] = 0
- tempoDeFila[i] = 0
- fimDoServico[i] = 0
- tempoTotalNoSistema[i] = 0
- ociosidade[i] = 0
- for(i = 0; i < ciclos; i=i+1) {
- if (i < 5){
- document.write("<tr><td>" + (i + 1) + "</td>")
- }
- if (i != 0) {
- numeroAleatorioX[i] = geradorA[i]
- intervaloChegadas[i] = tempoEntreChegadas * (Math.log(geradorA[i]))
- instanteDeChegada[i] = instanteDeChegada[i-1] + intervaloChegadas[i]
- }else{
- numeroAleatorioX[i] = 0
- intervaloChegadas[i] = 0
- instanteDeChegada[i] = 0
- }
- numeroAleatorioS[i] = geradorB[i];
- tempoDeServico[i] = tempoMedioDeServico * (Math.log(geradorB[i]))
- if (i != 0) {
- if (fimDoServico[i-1] > instanteDeChegada[i]){
- console.log("Entrou FDp")
- tempoDeFila[i] = fimDoServico[i-1] - instanteDeChegada[i]
- }else{
- tempoDeFila[i] = 0
- }
- inicioDoServico[i] = instanteDeChegada[i] + tempoDeFila[i]
- }else{
- tempoDeFila[i] = 0
- inicioDoServico[i] = 0
- }
- fimDoServico[i] = inicioDoServico[i] + tempoDeServico[i]
- console.log("i = " + i)
- console.log("FimDoServico[i-1] = " + fimDoServico[i-1])
- console.log("inicioDoServico[i] = " + inicioDoServico[i])
- console.log("instanteDeChegada[i] = " + instanteDeChegada[i])
- console.log("tempoDeFila[i] = " + tempoDeFila[i])
- console.log("tempoDeServico[i] = " + tempoDeServico[i])
- console.log("fimDoServico[i] = " + fimDoServico[i])
- if (i != 0) {
- if (tempoDeFila[i] == 0){
- ociosidade[i] = instanteDeChegada[i] - fimDoServico[i - 1]
- }
- }else{
- ociosidade[i] = 0
- }
- tempoTotalNoSistema[i] = tempoDeFila[i] + tempoDeServico[i]
- tempoMedioServico = tempoMedioServico + tempoDeServico[i]
- intervaloMedioEntreChegadas = intervaloMedioEntreChegadas + intervaloChegadas[i]
- tempoMedioDeResposta = tempoMedioDeResposta + tempoTotalNoSistema[i]
- tempoTotalDeOciosidade = tempoTotalDeOciosidade + ociosidade[i]
- if (i < 5) {
- document.write("<td>" + numeroAleatorioX[i]+
- "</td><td>" + intervaloChegadas[i] +
- "</td><td>" + instanteDeChegada[i] +
- "</td><td>" + numeroAleatorioS[i] +
- "</td><td>" + tempoDeServico[i] +
- "</td><td>" + inicioDoServico[i] +
- "</td><td>" + fimDoServico[i] +
- "</td><td>" + tempoDeFila[i] +
- "</td><td>" + tempoTotalNoSistema[i] +
- "</td><td>" + ociosidade[i] + "</td></tr>");
- }
- }
- document.write("</table>")
- document.write("<br>Tempo Médio Entre Chegadas: " + (intervaloMedioEntreChegadas / ciclos))
- document.write("<br>Tempo Médio de Serviço: " + (tempoMedioServico/ ciclos))
- document.write("<br>Tempo Médio de Resposta: " + (tempoMedioDeResposta / ciclos))
- }
- function executaAplicacao(){
- sementeA = document.getElementById('sementeA').value;
- sementeB = document.getElementById('sementeB').value;
- ciclos = document.getElementById('ciclos').value;
- listaA = getListGeradorRand2(sementeA, ciclos)
- listaB = getListGeradorRand2(sementeB, ciclos)
- newListaA = getListNumeroAleatorio(listaA, ciclos)
- newListaB = getListNumeroAleatorio(listaB, ciclos)
- simulacaoExemplo(newListaA, newListaB, ciclos)
- }
- </script>
- </html>
Add Comment
Please, Sign In to add comment