Einführung
Im Moment nehme ich an einem Schachturnier teil. Der Turnierplan hat mich inspiriert. Im Moment bin ich in einem Wettbewerb mit drei anderen Spielern. Das heißt, wir vier spielen drei Runden. Der Zeitplan sieht wie folgt aus:
Round 1: 1-4 3-2
Round 2: 3-4 2-1
Round 3: 1-3 4-2
Dies ist auch als Round Robin bekannt . Dies ist auch ein gültiger Zeitplan. Wir sagen, dass ein Zeitplan gültig ist, wenn er die folgenden Bedingungen erfüllt:
- Jeder Spieler spielt einmal gegen einen anderen Spieler.
1-2
bedeutet , dass Spieler1
hat weiß . Jeder Spieler hat oder ( N / 2 - 0,5 ) oder ( N / 2 + 0,5 ) mal Weiß, wobei N die Anzahl der Runden ist.
Im obigen Beispiel gibt es beispielsweise 3 Runden. Also N = 3. Wie Sie sehen können, entspricht die Anzahl der Runden der Anzahl der Spieler - 1 . Ein Spieler hat entweder
- N / 2 - 0,5 = 1 Mal weiß oder
- N / 2 + 0,5 = 2 mal weiß.
Im obigen Beispiel:
- Spieler
1
hat 2 mal weiß, - Spieler
2
hat 1 mal weiß, - Spieler
3
hat 2 mal weiß, - Spieler
4
hat 1 Mal Weiß.
Die Aufgabe
Bei einer geraden Ganzzahl> 1, die die Anzahl der Spieler im Wettbewerb darstellt, wird der Turnierplan ausgegeben.
Testfälle:
Eingabe = 4, dh N = 3
Input: Output:
4 1-4 3-2
3-4 2-1
1-3 4-2
Eingabe = 10, dh N = 9
Input: Output:
10 1-10 2-9 3-8 4-7 5-6
10-6 7-5 8-4 9-3 1-2
2-10 3-1 4-9 5-8 6-7
10-7 8-6 9-5 1-4 2-3
3-10 4-2 5-1 6-9 7-8
10-8 9-7 1-6 2-5 3-4
4-10 5-3 6-2 7-1 8-9
10-9 1-8 2-7 3-6 4-5
5-10 6-4 7-3 8-2 9-1
Eingabe = 12, dh N = 11
Input: Output:
12 1-14 2-13 3-12 4-11 5-10 6-9 7-8
14-8 9-7 10-6 11-5 12-4 13-3 1-2
2-14 3-1 4-13 5-12 6-11 7-10 8-9
14-9 10-8 11-7 12-6 13-5 1-4 2-3
3-14 4-2 5-1 6-13 7-12 8-11 9-10
14-10 11-9 12-8 13-7 1-6 2-5 3-4
4-14 5-3 6-2 7-1 8-13 9-12 10-11
14-11 12-10 13-9 1-8 2-7 3-6 4-5
5-14 6-4 7-3 8-2 9-1 10-13 11-12
14-12 13-11 1-10 2-9 3-8 4-7 5-6
6-14 7-5 8-4 9-3 10-2 11-1 12-13
14-13 1-12 2-11 3-10 4-9 5-8 6-7
7-14 8-6 9-5 10-4 11-3 12-2 13-1
Natürlich sind die zusätzlichen Leerzeichen, die ich zwischen den Zahlen verwendet habe, optional, aber nicht erforderlich. Sie können es in beliebiger Form ausgeben, solange es lesbar ist.
Hinweis: Die obigen Beispiele sind nicht nur die einzigen gültigen Ausgaben. Es gibt sicherlich mehr gültige Ausgaben.
Dies ist Code-Golf , also gewinnt die Einreichung mit der geringsten Anzahl von Bytes!
1-4 3-2 3-4 2-1 1-3 4-2
fürn=4
eine gültige Ausgabe?Antworten:
Python 2,
200186 BytesBeispielausgabe:
Oder 135 Bytes , indem Sie eine weniger hübsche (aber immer noch lesbare) Ausgabe verwenden:
Was so etwas hervorbringt wie:
quelle