Algoritmo di Berger
# Algoritmo di Berger

L'algoritmo di Berger è usato per stilare il calendario di una competizione sportiva con la formula del girone all'italiana. Esso prende il nome dal suo inventore, l'austriaco Johann Berger.

## Il calcolo

Con un numero pari di squadre partecipanti, l'algoritmo calcola "N:2" accoppiamenti per ogni giornata.

* Per ogni giornata «g» compresa tra 1 e «n−1»;
* Per ogni incontro «i» compreso tra 1 e «n:2»;
* L'incontro «i» abbina due squadre in base a questi criteri:
   * non sono state ancora abbinate
   * le restanti squadre - non selezionate - non siano state a loro volta già accoppiate.

## Implementazioni

Vi sono funzioni che implementano l'algoritmo ponendo a parametro la matrice con i nomi delle squadre, in numero pari, elaborando il calendario di un girone (stampato in video).

Nell'eventualità di un numero dispari di squadre, ad ognuna di esse sarà abbinato l'elemento «riposo» di volta in volta. I vincoli per squadre che condividano lo stesso campo sportivo sono risolvibili tramite un'alternanza tra incontri in casa e fuori casa.

La Federazione francese degli scacchi ha pubblicato una implementazione tale per cui ogni giocatore alterna il bianco e il nero nei propri turni di gioco.

