Гра «Сімка» грає так: n
гравці сідають у коло і починають рахувати з 1, переходячи вліво (або від гравця A
до гравця B
).
Коли число, p
що має 7
в ньому АБО, не ділиться на 7
, тоді гравець, який говорив число p-1
, після того, як сказав наступний гравець p
, повинен сказати, p+1
і порядок людей, що говорять, змінюється. Наприклад, якщо гравець B
говорить 6
, гравець C
каже 7
, B
каже 8
, а гравець A
каже 9
.
Примітка. Для тих, хто хоче грати в реальному житті, якщо людина забуде число (або у версії, де sevens
не сказано, випадково каже а seven
), вони виключаються з кола, але ми опустимо цю деталь із цього виклику.
Сама задача полягає в тому, щоб надрукувати, які номери повинен сказати кожен гравець у ідеальній грі «Сімки», аж до m
введення n
гравців, що вводять інформацію .
В якості прикладу, де п'ять чоловік, A
, B
, C
, D
, і E
, покликані відігравати , поки вони НЕ досягають 30
. Вони грають таким чином
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
де sevens
позначені *
. Зауважте, що в 27
і 28
ми перевертаємось двічі, і гра продовжується "як звичайно" від D
до E
.
Зверніть увагу, що висновок не повинен бути у наведеному вище форматі. Я просто надрукував це таким чином для ясності.
Правила
Вхід є двома цілими числами в будь-якому порядку,
m
представляючи останнє число, яке потрібно сказати, щоn
представляє кількість гравців.Вихід може бути декількома масивами або декількома рядками, по одному для кожного гравця. Якщо ви використовуєте рядки, вам не доведеться використовувати роздільники (хоча, якщо ви можете додати їх у свої тести коду, ми будемо вдячні для читабельності) Якщо ви можете якось надрукувати їх по колу, це теж прийнятно, і це було б дуже круто.
Вихідні дані не повинні вказувати, хто саме гравців (це цілком очевидно, що перший гравець - це той, хто говорить
1
), хоча якщо результат не відсортований з будь-якої причини, слід уточнити, який гравець говорить, який набір чисел . Випускати гравців, які нічого не говорять, також дозволяється, якщо ви даєте зрозуміти, які гравці виступають. Я додаю ще кілька прикладів можливих результатів нижче.Це кодовий гольф, тому виграє найменша кількість байтів.
Як завжди, якщо проблема неясна, будь ласка, повідомте мене про це. Успіхів і хорошого гольфу!
Приклади
>>> 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
.) Я не кажу, що це краще чи гірше з точки зору виклику: просто, що це було б корисніше в реальному світі.