Modelagem
Seminário: Modelagem. Pesquise 861.000+ trabalhos acadêmicosPor: clovisejosy • 27/11/2013 • Seminário • 429 Palavras (2 Páginas) • 262 Visualizações
1
Simulação
• Emulação de sistemas reais
• Levantamento de estatísticas
– Não envolve pessoas/sistemas reais
– Situações extremas podem ser testadas
– Intervalos de tempo “irreais” podem ser avaliados
Simulação
• Problema de Josephus
– N pessoas (numeradas de 1 a N) sentadas em um círculo
– Começando pela pessoa 1, uma batata quente é passada
para a pessoa do lado.
– Depois de M passes, a pessoa que está com a batata
quente é eliminada do círculo.
– A batata recomeça a ser passada pela pessoa ao lado da
eliminada
2
Simulação
Problema de Josephus
• M=0
– Pessoas eliminadas na ordem a partirda pessoa 1. Ganha a
última pessoa.
• M=1
– A ordem de eliminação de pessoas não é tão intuitiva.
– N=5, M=1:
• Começa com 1, passa para 2 que é eliminado
• 3 pega a batata, passa para 4 que é eliminado
• 5 pega a batata, passa para 1 que é eliminado
• 3 pega a batata, passa para 5 que é eliiminado. 3 ganha.
Simulação
Problema de Josephus – Solução 1
• Pessoas: elementos em uma lista ligada
• Cada passe da batata é uma operação next em um
iterator da lista ligada.
3
Simulação
Problema de Josephus - Implementação
public static int josephus( int people, int passes) {
Collection theList = new LinkedList();
for (int i=1;i<=people;i++)
theList.add(new Integer(i));
Iterator its = theList.iterator();
while (people -- !=1) {
for (int i=0;i<=passes;i++) {
if (!itr.hasNext())
itr=theList.iterator();
itr.next();
}
itr.remove();
}
itr.theList.iterator();
return ((Integer) itr.next()).intValue();
}
O(MN)
Simulação
Problema de Josephus – Solução 2
• Podemos notar que a pessoa a ser eliminada sempre é dada
por:
(P+M) mod N
Onde N = número de pessoas
P = pessoa com a batata
M = número de passes
• Para o exemplo inicial: N=5, P=1, M=1
– (1+1) mod 5 = 2 (eliminado) (pessoa 2)
– (2+1) mod 4 = 3 (eliminado) (pessoa 4)
– (3+1) mod 3 = 1 (eliminado) (pessoa 1)
– (1+1) mod 2 = 0 (apontamos para
...