• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Groep van 7 in wisselende samenstelling

Status
Niet open voor verdere reacties.

mazzel1

Nieuwe gebruiker
Lid geworden
12 mrt 2013
Berichten
3
Wij zijn een groep van 7 fanatieke tennissers en spelen elke donderdagavond met zijn vieren een partij. Is er een sheet waarbij ik de namen in kan vullen en waarbij dan een schema gegenereerd wordt waarbij we steeds met 4 spelen maar steeds in een wisselende samenstelling waarbij iedereen evenveel keer met elkaar speelt?
 
je schrijft:
waarbij we steeds met 4 spelen
is dat alleen enkelspel?
en speelt dan ieder tegen ieder? (iedereen speelt dan 3 wedstrijden per samenkomst) ?

of wordt er ook gedubbeld?
 
Laatst bewerkt:
Wij spelen een dubbel partij per avond met dus 4 personen. De andere 3 zijn die avond vrij.
 
Bijgaand de 105 combinaties, gehusseld met onderstaande uitgangspunten.

Er zijn 3 blokken van 35 wedstrijden.
Binnen elk blok komt elke combinatie van 4 spelers maar 1 keer voor.
Bijvoorbeeld wedstrijd 1 is 1-2 tegen 3-4.
Die 4 spelers treden als viertal pas weer aan in wedstrijd 36, maar dan 1-3 tegen 2-4; in wedstrijd 71 is het 1-4 tegen 2-3.

Qua viertal is elk blok van 35 een herhaling van het vorige blok, dus wedstrijden 1, 36 en 71 hebben hetzelfde viertal, 2, 37 en 72 hebben hetzelfde viertal etc.
Maar dan in een andere combinatie zoals hierboven geschetst.

Er wordt zoveel mogelijk om en om gespeeld (spelen - vrij - spelen - vrij, etcetera).

Binnen een blok van 35 wedstrijden speelt geen enkele speler 3 keer achter elkaar.
Alleen speler 1 treedt 3 keer achter elkaar in: 35 36 37 en 70 71 72.
Edit: en speler 5 speelt 4 keer achter elkaar in de laatste 4 wedstrijden van elk blok.

Geen enkele speler heeft 3 keer achter elkaar vrij.
In enkele gevallen heeft een speler wel 2 keer vrij, maar dan is dat nadat hij/zij daarvoor 2 wedstrijden achter elkaar heeft gespeeld. Althans binnen 1 blok.

Hoe ik het heb gedaan? In een apart werkblad, vooral handmatig, een paar formules en voorwaardelijke opmaak (bijvoorbeeld groen is vorige wedstrijd niet gespeeld; rood is vorige 2 wedstrijden wel gespeeld). Zodoende 1 blok van 35 wedstrijden volgemaakt en de andere 2 blokken gekopieerd.

Mocht iemand hiervoor een algoritme weten te verzinnen, dan alvast bij voorbaat mijn welgemeende complimenten. :thumb:
 

Bijlagen

Laatst bewerkt:
Ik heb wel een code voor je om de 105 wedstrijden te bepalen.
Code:
Sub hsv()
Dim sn, arr, j As Long, jj As Long, jjj As Long, jjjj As Long, n As Long
Dim num1 As Long, num2 As Long, num3 As Long, num4 As Long
sn = Application.Transpose(Array(1, 2, 3, 4, 5, 6, 7))
ReDim arr(Application.Combin(UBound(sn), 4) * 3, 3)
'eerste 35 wedstrijden
 For j = 1 To UBound(sn) - 3
    num1 = sn(j, 1)
  For jj = j + 1 To UBound(sn) - 2
     num2 = sn(jj, 1)
    For jjj = jj + 1 To UBound(sn) - 1
       num3 = sn(jjj, 1)
     For jjjj = jjj + 1 To UBound(sn)
        num4 = sn(jjjj, 1)
              arr(n, 0) = num1
              arr(n, 1) = num2
              arr(n, 2) = num3
              arr(n, 3) = num4
                      n = n + 1
       Next jjjj
     Next jjj
   Next jj
  Next j
'2e serie van 35 wedstrijden
  For j = 1 To UBound(sn) - 3
    num1 = sn(j, 1)
  For jj = j + 1 To UBound(sn) - 2
     num2 = sn(jj, 1)
    For jjj = jj + 1 To UBound(sn) - 1
       num3 = sn(jjj, 1)
     For jjjj = jjj + 1 To UBound(sn)
        num4 = sn(jjjj, 1)
              arr(n, 0) = num1
              arr(n, 1) = num3
              arr(n, 2) = num2
              arr(n, 3) = num4
                      n = n + 1
       Next jjjj
     Next jjj
   Next jj
  Next j
'3e serie van 35 wedstrijden
For j = 1 To UBound(sn) - 3
    num1 = sn(j, 1)
  For jj = j + 1 To UBound(sn) - 2
     num2 = sn(jj, 1)
    For jjj = jj + 1 To UBound(sn) - 1
       num3 = sn(jjj, 1)
     For jjjj = jjj + 1 To UBound(sn)
        num4 = sn(jjjj, 1)
              arr(n, 0) = num1
              arr(n, 1) = num4
              arr(n, 2) = num3
              arr(n, 3) = num2
                      n = n + 1
       Next jjjj
     Next jjj
   Next jj
  Next j
Cells(2, 10).Resize(n, 4) = arr
Cells(2, 10).CurrentRegion.Sort [j2], , [k2], , , [l2], , 1
End Sub
Maar nog niet om die te husselen.
 
Laatst bewerkt:
@snb,

Helaas heb ik na twintig jaar getennist te hebben geen zin meer om te spelen anders was je mooi met twee teams op de baan. :d

Kun je de formule hier eens plaatsen want die werkt voor een nieuwere versie dan Excel 2007.
 
Laatst bewerkt:
Kun je de formule hier eens plaatsen want die werkt voor een nieuwere versie dan Excel 2007.

Het is een RANG.GEMIDDELDE maar m.i. doet RANG het ook gewoon want de hussel is "gewoon" gebaseerd op aselecte getallen in verborgen kolom E.

Qua hussel ben ik vooralsnog nog het meest gecharmeerd van mijn eigen 'Hussle by night'. :p
 
Als mazzel1 dit allemaal doorneemt ontgaat hem de goesting om te tennissen. :)
 
@HSV

Your wish.....
Zie de vorige bijdrage.
 
@snb,

Bedankt, maar het nut ervan ontgaat me eigenlijk, je mag het wel direct uitprinten anders is het de volgende week anders bij het opstarten van het blad. :d
 
Beste mensen,
Mooi werk verricht. Ik kan uit de oplossingen die ingestuurd zijn wel de oplossing vinden voor de probleemstelling. Allen bedankt voor de moeite!:thumb:
 
Een simpele methode voor soort vraagstukken (in dit geval combinaties van 4 uit 7):

Code:
Sub M_snb()
   For j = 1 To 7 ^ 4
      If (j \ 7 ^ 3 < (j Mod 7 ^ 3) \ 7 ^ 2) * ((j Mod 7 ^ 3) \ 7 ^ 2 < (j Mod 7 ^ 2) \ 7) * ((j Mod 7 ^ 2) \ 7 < j Mod 7) <> 0 Then c00 = c00 & "|" & Join(Array(j \ 7 ^ 3 + 1, (j Mod 7 ^ 3) \ 7 ^ 2 + 1, (j Mod 7 ^ 2) \ 7 + 1, j Mod 7 + 1), "_")
   Next
   
   sn = Split(Mid(c00, 2), "|")
   
   Cells(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub
 
Marcel, ik vind jouw hussel uit post 7 een knap stukje huisvlijt. :thumb:

ik ben ook benieuwd of iemand daar een mooie macro voor verzint. ik noem hem alvast "HusselMetVoorwaarde"

over een paar maanden heb ik vast wel een mooie oplossing gemaakt (hoop ik)
 
Marcel, ik vind jouw hussel uit post 7 een knap stukje huisvlijt. :thumb:

ik ben ook benieuwd of iemand daar een mooie macro voor verzint. ik noem hem alvast "HusselMetVoorwaarde"

over een paar maanden heb ik vast wel een mooie oplossing gemaakt (hoop ik)

Dank je wel Sylvester. :)

Dan zal ik ook maar delen hoe ik te werk ben gegaan: voor het stukje huisvlijt heb ik bijgaande werkmap gebruikt.
Ik heb er een werkblad aan toegevoegd met een uitgebreide toelichting hoe ik te werk ben gegaan.

Zoals je kunt lezen was de aanduiding "werkmap" hier wel heel toepasselijk; ik neem aan dat men hier "rekenmappen" prefereert... :d
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan