Domanda

Sto progettando un'app Web per ospitare tornei e-sport e voglio creare un algoritmo che genera parentesi per tornei.

Dato un elenco di ID utente dei partecipanti (minimo 4, massimo diciamo 64), voglio generare una staffa sotto forma di un elenco di accoppiamenti, in cui ogni elemento della coppia rappresenta un partecipante alla partita o un riferimento al vincitore di Una partita precedente, IE Utente 1 vs. Utente 2, vincitore della partita 1 contro l'utente 3 e così via.

Un semplice esempio, dato l'array di partecipanti:

(user1, user2, user3, user4)

Ottiamo il risultato finale come un insieme di coppie, nell'ordine logico:

(user1, user2), (user3, user4), (winner0 vs winner1)

Dove winner0 Si riferisce al vincitore di Match 0 (la prima coppia nel set di risultati). Pertanto, il vincitore dell'ultima partita del set è il vincitore del torneo.

Ho bisogno di questo per funzionare con un elenco di concorrenti di qualsiasi dimensione tra 4 e 64 (o qualche altro massimo teorico), non solo per i poteri di 2. Quando il conteggio dei concorrenti non è una potenza di 2, alcuni partecipanti devono ottenerne uno in più o uno in meno Per riempire l'intera parentesi. Tutti i posizionamenti iniziali saranno casuali.

Suppongo che sia anche possibile rappresentare il risultato come un albero binario, ma non sono sicuro che sarò in grado di applicarlo in questo modo.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top