Created
July 15, 2011 04:26
-
-
Save yuripiratello/1084063 to your computer and use it in GitHub Desktop.
Simulação
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
</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> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment