TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Modelagem

Seminário: Modelagem. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  27/11/2013  •  Seminário  •  429 Palavras (2 Páginas)  •  241 Visualizações

Página 1 de 2

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

...

Baixar como (para membros premium)  txt (3.1 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com