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

Resposta – Teste Soma e Produto no VBA

Segue a resposta do Teste anterior.

Há uma quantidade infindável de soluções possíveis. Fiz o mais simples possível, com ranges fixos.

Coloquei a resposta do Maurício Cota junto no arquivo aqui.

Sub respostaVBA()

Dim i As Integer

Dim soma As Double

For i = 2 To 200    ‘Percorre a linha 2 até a linha 200

    soma = soma + Range(“a” & i) * Range(“b” & i) 

    ‘Faz o produto da coluna A e coluna B e armazena na variável soma

Next i

‘Escreve a resposta na célula e1

Range(“e1”) = soma

End Sub


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

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