Utilizzando JavaScript / jQuery per generare infissi
-
12-09-2019 - |
Domanda
Sto mettendo insieme uno strumento per un collega, che contribuisce a creare un bel calendario degli incontri. Ho avuto circa 2/3 attraverso l'utensile, la raccolta di dati diversi ... e poi mi ha colpito un muro di mattoni. Si tratta di meno di un problema JavaScript e più di un brainblock la matematica / elaborazione.
Diciamo che ho 4 squadre, e tutti hanno bisogno di giocare tra loro in casa e fuori. Con questo strumento - http://www.fixturelist.com/ - posso vedere che una casa e fuori fissaggio con 4 squadre avrebbe preso 6 settimane / giri / qualunque cosa. Per la vita di me, però, non riesco a capire come che è stato elaborato a livello di codice.
Qualcuno può spiegare la logica per elaborare questo?
Per info, vorrei utilizzare questo strumento già esistente, ma ci sono altri fattori / caratteristiche che ho bisogno di lavorare, quindi facendo un lavoro personalizzato. Se solo potessi capire come rappresentare la logica!
Soluzione
Nel tuo esempio di 4 squadre, li chiamano a, b, c, d:
- un deve giocare b, c, d
- b deve svolgere c, d (partita contro una già incluso nei giochi di a)
- c deve giocare d (partita contro una già incluso nei giochi di una, contro il b già incluso nei giochi del b)
Se hanno bisogno di giocare in casa e fuori, che è 12 partite. Si può giocare al massimo 4/2 = 2 partite a settimana, in modo che è di 6 settimane.
Con squadre n
avete bisogno di giochi x
, dove:
x = ((n-1 + n-2 + n-3 ...) * 2)
Questo richiede settimane y
, dove:
y = x/(n/2) = 2x/n
Questo può essere semplificato con una serie aritmetica abbastanza facilmente, o calcolato con un ciclo, se si desidera.