in einem Rätselforum wurde folgende Kopfnuß dargestellt, inzwischen wurde sie gelöst mit einem Beispiel der Spielpaarungen wie sie für 8 Spieler aussehen könnte.
Die Lösung steht hier gaaaanz unten, wer mitknobeln möchte, muß ja nicht bis ganz unten scrollen :-)
**************************************************************************************
Ich habe folgendes Problem:
(Beispiel oder Unmöglichkeitsbeweis sind gesucht)
Kann man einen Spielplan für ein Tischkickerturnier konstruieren, bei dem 8 Spieler teilnehmen, jeweils 2
gegen 2 gespielt wird, nach jeder Runde die Teams verändert werden und folgende Bedingungen erfüllt
sind:
1. Jeder Spieler spielt mit jedem anderen Spieler(als Partner) genau einmal
2. Jeder Spieler spielt gegen jeden anderen Spieler (als Gegner) genau zwei mal
Ich habe noch kein Beispiel oder Unmöglichkietsbeweis für 8 Spieler gefunden, aber für 4 und 5 Spieler
jeweils ein Beispiel:
4 Spieler: (1,2,3,4)
12-34
13-24
14-23
5 Spieler
12-34
13-45
14-25
15-23
24-35
**************************************************************************************
Mit Vba komme ich in Spalte N nur bis zu 210 möglichen Spielpaarungen, was aber gar nicht richtig sein muß, denn gestern kam ich mit ähnlichem Code auf 420 mögliche Spielpaarungen, bin daher grad sehr unsicher was richtig ist.
Spalte A mit 28 möglichen Partnerschaften im Doppel wird wohl richtig sein.
Auch daß als Ergebnis 7 Spielpaarungen sein müssen ist klar.
Hat jemand vielleicht Lösungsansätze,Lösungscode?
Mein Versuchscode:
Option Explicit
Sub Plan()
Dim N As Byte, NN As Byte, Z1 As Long, Z2 As Long
Const M As Byte = 8
ActiveSheet.UsedRange.ClearContents
Application.ScreenUpdating = False
Columns("A:E").NumberFormat = "@"
For N = 1 To M
For NN = N + 1 To M
Z1 = Z1 + 1
If N NN Then
Cells(Z1, 1) = N & NN
End If
Next NN
Next N
For N = 1 To Z1
For NN = N + 1 To Z1
If InStr(Cells(NN, 1), Left(Cells(N, 1), 1)) = 0 And InStr(Cells(NN, 1), Right(Cells(N, 1) _
, 1)) = 0 Then
Z2 = Z2 + 1
Cells(Z2, 2) = Cells(N, 1) & "-" & Cells(NN, 1)
End If
Next NN
Next N
Columns("A:E").AutoFit
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard
Eine Lösung:
**************************************************************************************
die sache hat mich interessiert, weil ich eine lösung in einem anderen zusammenhang auch brauchen könnte.
ich bin von einem herkömmlichen jeder-gegen-jeden als einzel ausgegangen und habe diese gegnerschaften als partnerschaften verwendet. damit ist einmal sichergestellt, dass jeder exakt einmal mit jedem spielt.
dann gehts "nur" mehr drum, die richtigen paare gegeneinander antreten zu lassen. wenn ich nix übersehen habe, müsste folgendes passen:
1: 12-34, 56-78
2: 13-57, 24-68
3: 14-67, 23-58
4: 15-26, 37-48
5: 16-38, 25-47
6: 17-28, 35-46
7: 18-45, 27-36
**************************************************************************************