Sevens oyunu şu şekilde oynanır: n
oyuncular bir daire içinde oturur ve soldan (veya oyuncudan A
oyuncuya B
) geçen 1'den saymaya başlar .
Bir numara ne zaman p
bir sahip 7
o VEYA ile bölünebilir 7
ulaşıldığında, ardından numarayı konuştu oyuncu p-1
, sonraki oyuncu diyor sonra p
söylemeliyim p+1
ve bota konuşan insanların sırası. Örneğin, oyuncu B
konuşursa 6
, oyuncu C
diyor 7
, B
diyor 8
ve oyuncu A
diyor 9
.
Not: Gerçek hayatta oynamak isteyenler için, eğer bir kişi bir sayıyı unutursa (veya sevens
söylenmeyen versiyonda , yanlışlıkla a der seven
), çemberden çıkarılır, ancak bu detayı bu zorluktan çıkarırız.
Zorluk, her bir oyuncunun, Sevens'in mükemmel bir oyununda m
bir girdi n
oyuncuları için bir girdiye kadar hangi sayıları söylemesi gerektiğidir .
Beş kişi, bir örnek olarak A
, B
, C
, D
, ve E
onlar ulaşana kadar oynamak için vardır 30
. Bu şekilde oynarlar
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
nerede sevens
ile işaretlenmiştir *
. Not o 27
ve 28
biz iki kez geri vites konum ve oyun dan "normal olarak" devam D
etmek E
.
Çıktının yukarıdaki biçimde olması gerekmediğini lütfen unutmayın. Sadece netlik için bu şekilde yazdırdım.
kurallar
Girdi, herhangi bir sırada iki tamsayıdır ve
m
söylenecek son sayıyın
temsil eder, oyuncu sayısını temsil eder.Çıktı, her oyuncu için bir tane olmak üzere birkaç dizi veya dizge olabilir. Dizeler kullanırsanız, ayırıcılar kullanmanız gerekmez (yine de, kod testlerinize bazılarını ekleyebiliyorsanız, okunabilirliği takdir ederiz). Onları bir şekilde bir daireye yazdırabiliyorsanız, bu da kabul edilebilir ve çok güzel olurdu.
Çıktının hangi oyuncuların hangisi olduğunu belirtmesi gerekmez (ilk oyuncunun söylediği kişi oldukça açıktır
1
), ancak çıktı herhangi bir nedenle sıralanmamışsa, hangi oyuncunun hangi sayı kümesini konuştuğunu netleştirmelisiniz. . Hangi oyuncuların konuştuğunu netleştirirseniz, hiçbir şey söylemeyen oyuncuların çıkarılmasına da izin verilir. Aşağıda olası çıktılara birkaç örnek daha ekleyeceğim.Bu kod golf, bu yüzden en az bayt sayısı kazanır.
Her zaman olduğu gibi, sorun net değilse, lütfen bana bildirin. İyi şanslar ve iyi golf!
Örnekler
>>> 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
.) Bunun meydan okuma açısından daha iyi veya daha kötü olduğunu söylemiyorum: sadece gerçek dünyada daha yararlı olacağını söylemiyorum.