Skip to content

Instantly share code, notes, and snippets.

@yuripiratello
Created July 15, 2011 04:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuripiratello/1084063 to your computer and use it in GitHub Desktop.
Save yuripiratello/1084063 to your computer and use it in GitHub Desktop.
Simulação
</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