セブンズのゲームは次のようにプレイされます:n
プレイヤーは円に座って、1からカウントアップを開始し、左へ(またはプレイヤーからプレイヤーA
へB
)通過します。
数ときにp
持っている7
ことにORで割り切れる7
達したが、その後、番号を話したプレイヤーはp-1
、次のプレーヤーが言う後p
、言わなければならないp+1
とは逆転を話す人々のため。例えば、プレイヤーがあればB
話す6
、プレイヤーはC
言う7
、B
と言う8
と、プレイヤーがA
言います9
。
注:実生活でプレイしたい人のために、人が数字を忘れた場合(またはsevens
言われなかったバージョンで誤ってを言う場合seven
)、サークルから除外されますが、この課題からこの詳細を省略します。
チャレンジ自体は、セブンの完璧なゲームで、各プレイヤーがm
入力n
プレイヤーへの入力までに言うべき数字を印刷することです。
5人は、一例として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
で2回反転し、からD
まで「通常どおり」プレイが継続することに注意してくださいE
。
出力は上記の形式である必要はないことに注意してください。わかりやすくするために、そのように印刷しました。
ルール
入力は任意の順序の2つの整数であり
m
、最後に言う数をn
表し、プレーヤーの数を表します。出力は、プレーヤーごとに1つずつ、複数の配列または複数のストリングにすることができます。文字列を使用する場合は、区切り文字を使用する必要はありません(ただし、コードテストに文字列を追加できる場合は、読みやすくしてください)。どういうわけか実際にそれらを円で印刷できるなら、それも受け入れられます、そしてそれはかなりクールです。
出力は、どのプレイヤーがどのプレイヤーであるかを指定する必要はありません(最初のプレイヤーが言う人であることはかなり明らかです
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
。)彼の挑戦という点でそれが良いことも悪いことも言っていません。実際の世界でもっと役に立つとだけ言っています。