O jogo de Sevens é jogado da seguinte forma: os njogadores sentam em círculo e começam a contar a partir de 1, passando para a esquerda (ou de jogador Apara jogador B).
Quando um número pque tem um 7OU é divisível por, 7é atingido, o jogador que falou o número p-1, depois que o próximo jogador diz p, deve dizer p+1e a ordem das pessoas que fala está invertida. Por exemplo, se o jogador Bfala 6, o jogador Cdiz 7, Bdiz 8e o jogador Adiz 9.
Nota: Para aqueles que querem jogar na vida real, se uma pessoa esquecer um número (ou na versão em que sevensnão se diz, acidentalmente diz a seven), eles serão eliminados do círculo, mas omitiremos esse detalhe desse desafio.
O desafio em si é imprimir quais números cada jogador deve dizer em um jogo perfeito de Sevens até uma entrada mpara njogadores de entrada .
Como um exemplo, onde cinco pessoas, A, B, C, D, e E, se jogar até chegarem 30. Eles jogam dessa maneira
A: 1 6 8 13 15 19 23 30
B: 2 7* 12 16 18 24
C: 3 11 17* 25
D: 4 10 21* 26 28*
E: 5 9 14* 20 22 27*29
onde sevensestão marcados com *. Observe que em 27e 28, estamos invertendo duas vezes, e o jogo continua "normalmente" de Dpara E.
Observe que a saída não precisa estar no formato acima. Simplesmente imprimi dessa maneira para ter mais clareza.
Regras
A entrada é dois números inteiros em qualquer ordem,
mrepresentando o último número a dizer,nrepresentando o número de jogadores.A saída pode ser de várias matrizes ou várias strings, uma para cada jogador. Se você usa strings, não precisa usar separadores (no entanto, se você puder adicionar alguns em seus testes de código, agradecemos a legibilidade). Se você realmente puder imprimi-los em um círculo de alguma forma, isso também é aceitável e seria muito legal também.
A saída não precisa designar quais jogadores são (é óbvio que o primeiro jogador é quem diz
1), embora se a saída não for classificada por qualquer motivo, você deve deixar claro qual jogador está falando qual conjunto de números . Omitir jogadores que não dizem nada também é permitido se você deixar claro quais jogadores estão falando. Vou adicionar mais alguns exemplos de possíveis resultados abaixo.Esse é o código golf, portanto o menor número de bytes vence.
Como sempre, se o problema não estiver claro, entre em contato. Boa sorte e bom golfe!
Exemplos
>>> sevens_string(30, 5, " ")
'1 6 8 13 15 19 23 30'
'2 7 12 16 18 24'
'3 11 17 25'
'4 10 21 26 28'
'5 9 14 20 22 27 29'
>>> sevens_string(42, 5)
'16813151923303539'
'27121618243140'
'31117253241'
'410212628333742'
'591420222729343638'
>>> sevens_array(20, 3)
[1, 4, 7, 10, 13, 15, 19]
[2, 5, 9, 12, 16, 18]
[3, 6, 8, 11, 14, 17, 20]
>>> sevens_array(18, 10)
[1, 13, 15]
[2, 12, 16, 18]
[3, 11, 17]
[4, 10]
[5, 9]
[6, 8]
[7]
[]
[]
[14]

1 2 3 4 1 2 3 2 1 4 3 2 1 4 1.) Não estou dizendo que isso seja melhor ou pior em termos de desafio: ele apenas seria mais útil no mundo real.