Teste: O problema de Josephus

O problema de Josephus é um jogo com dois parâmetros: número de participantes e distância entre eliminações.

Diz a lenda que um certo Flavius Josephus, durante uma guerra, se encontrava entre um bando de 41 judeus rebeldes encurralados pelos romanos em uma caverna.

Os rebeldes formam um círculo e começam a partir de certo ponto a executar a terceira pessoa numa direção.
Sabe-se que Josephus sobreviveu. Em que posição ele estava para ser o último?

Por exemplo, para 7 participantes e eliminar a cada 3:

Na primeira rodada, elimina o número 3.

Pulando mais três, eliminar o número 6.

Depois, é a vez do número 2.

Depois, o número 7 – note que o 3 e o 6 já tinham sido eliminados.

Na sequência, o 5 e o 1.

No final das contas, o número 4 é o vencedor. Neste jogo, Josephus deveria ficar na posição 4 para sobreviver!

Desafio: criar uma função Josephus(n, p), que receba o número de participantes (n) e a distância a eliminar (p), e retorne qual a posição vencedora.

A resposta foi publicada aqui.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Anúncios

Um comentário sobre “Teste: O problema de Josephus

  1. Republicou isso em Forgotten Loree comentado:

    O problema de Josephus

    Diz a lenda que um certo Flavius Josephus, durante uma guerra, se encontrava entre um bando de 41 judeus rebeldes encurralados pelos romanos em uma caverna.

    Os rebeldes formam um círculo e começam a partir de certo ponto a executar a terceira pessoa numa direção.
    Sabe-se que Josephus sobreviveu. Em que posição ele estava para ser o último?

    De forma geral, dada uma função (número de pessoas, passos), em que posição Josephus deve ficar para se salvar?

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s