Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Procedura per la creazione di un girone di un torneo

    Salve
    vi illustro il mio problema.

    Devo creare un software per la gestione di tornei di calcio.
    La mia difficoltà sta nel riuscire a creare il calendario di un girone.

    il numero di partite (andata e ritorno) + uguale a x(x-1) dove x è il numero di squadre del girone.

    Ora devo creare il calendario. far in modo che si possano scontrare tutte le squadre sia in andata che ritorno.

    Qualcuno di voi mi può dare un aiuto, un suggerimento.....o un link ?????

    grazie
    saluti
    nicola

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quale linguaggio? :master:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    mi servirebbe in php......ma non è necessario.....

    nel senso che se qualcuno mi sa segnalare un algoritmo me lo posso pure tradurre........

    ciao

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Originariamente inviato da spyre
    mi servirebbe in php......ma non è necessario.....
    Il linguaggio PHP non è trattato qui. Se la discussione si mantiene generica a livello algoritmico senza riferimenti specifici a PHP (per cui esiste un apposito forum), è ok.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    infatti.....io non necessito del codice php......ma di indicazioni sullo sviluppo dell'algoritmo......

    grazie.....
    ciao

  6. #6
    Utente di HTML.it L'avatar di ibykos
    Registrato dal
    Feb 2005
    Messaggi
    201
    Ciao!
    vai di forza bruta:

    per prima cosa scrivi una funzione che genera una giornata. creaGiornata()
    poi scrivi una funzione che è in grado di dire se il campionato è in uno stato corretto, cioè se, per tutte le giornate già definite, non ci sono partite che si ripetono. testaStato()
    dopo di che crea una funzione ricorsiva per generare il campionato.
    crea inoltre una funzione che controlli se per una strada ho già seguito tutte le combinazioni possibili ed un'altra che esegua il rollback di un'operazione che ha condotto il campionato in uno stato scorretto.

    codice:
    struct campionato{
      una struttura in grado di contenere  un campionato
    }
    
    generaCampionato(&campionato){
      if (testaStato(campionato)==COMPLETO){
        return;
      else if (testaStato(campionato)==INCOMPLETO){
           do{
             giornata=creaGiornata();
             aggiungi (giornata,campionato);
             generaCampionato(&campionato);
           while ((testaStato(campionato)!=CORRETTO)&&(combinazioniFinite()==FALSE))
        }
       else if (testaStato(campionato)==NON_CORRETTO){
          rollback();
          return;
       }
      }
    }
    Questo algoritmo fa uso della forza bruta ed è lentissimo.
    In attesa che mi venga in mente qualche metodo un po' più euristico ti passo questo :-)
    ciao!

  7. #7
    grazie.....è un ottimo "input".....mi hai illuminato sull'utilizzo della funzione ricorsiva per la generazione del campionato.....non ci avevo ancora pensato.....

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.