Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: Calcolo Combinatorio

  1. #1

    Calcolo Combinatorio

    Vorrei fare il calcolo combinatorio tra le quote di 8 Partite di calcio.

    1 x 2
    ______________________
    Partita1 --> n n n
    Partita2 --> n n n
    Partita3 --> n n n
    Partita4 --> n n n
    Partita5 --> n n n
    Partita6 --> n n n
    Partita7 --> n n n
    Partita8 --> n n n


    Lo script PHP mi deve restituire tutte le combinazioni possibili ( in questo caso sono 512 ).

    Es. Prima Possibilità --> 1 - 2 - x - 2 - x - 1 - x - 2 = quota finale (moltiplicazione fra tutte le quote della prima possibilità)
    ...
    ...
    ...
    ...

    ..e cosi via fino a 512.


    Come posso fare questo piccolo calcolo combinatorio?
    Sicuramente avrò bisogno degli array.. ma combinare e annidare 8 CICLI WHILE mi pare un po' oneroso... Ci saranno sicuramenti funzioni PHP che mi permettono di facilitare questo calcolo.

    Grazie a tutti!

  2. #2

  3. #3
    Bene l'ho presa.. orma mi posteresti come utilizzarla nel mio caso?

    ti ringrazio infinitamente!

  4. #4

  5. #5
    hai provato per pura "casualità" a leggere i commenti con tanto di esempio completo e riadattabile ? :rollo:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Si Certo, ma non riesco ad adattarlo alla situazione delle partite..

    - Gli Array sarebbero 8? con 3 valori ognuno?

    - COme farli combinare senza che si combinino fra loro le 3 quote di un singolo Array?

    Se volessi postarmi il codice da utilizzare in questo caso te ne sarei molto grato

  7. #7
    Oppure faresti 3 array?

    Array degli 1 : 8 quote

    Array degli X: 8 quote

    Array dei 2: 8 quote

  8. #8
    [quote]
    $container = Array( 'quota 1', 'quota 2', 'quota 3', 'quota 4', 'quota 5', 'quota 6', 'quota 7', 'quota 8' );
    $c = new Combinatory(' - ');
    $matches = $c->result( $container, 3, "Pn(k)" );

    // METHODS TO CALCULATE: Pn - Pn(k) - Dn,k - D'n,k - Cn,k - C'n,k
    echo count( $matches );
    echo '<pre>';
    var_dump( $matches );
    echo '</pre>';
    [/code]


    questo è tale quale l'esempio mostrato ad eccezione del metodo che è Pn(k) .... con quell'array risultante puoi farci quello che ti pare, tipo un ciclo per sommare tutti i valori delle quote o altro ... vedi tu, intanto ho colto l'occasione per ritestare il codice su PHP 5.2 E_ALL | E_STRICT ... funziona alla perfezione ma da dei notice (già tolti per i riferimenti)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    Scusa ma questo tira fuori tante triplette.. mentre a me servono tante ottette (non so se se dice così ).. Non riesco a far interagire 8 Array diversi... Ti posto un disegno dell'idea:





    PS= Accendi ICQ?

    tnk

  10. #10
    Ho utilizzato un obbrobbrio del genere:

    Codice PHP:
    <?php
    $a 
    = array("a1""ax""a2");
    $b = array("b1""bx""b2");
    $c = array("c1""cx""c2");
    $d = array("d1""dx""d2");
    $e = array("e1""ex""e2");
    $f = array("f1""fx""f2");
    $g = array("g1""gx""g2");
    $h = array("h1""hx""h2");
    $ris = array();
    $c1=0;
    while(
    $c1 count($a)) {
                 
    $c2=0;
    while (
    $c2 count($b)) {
                                                    
    $c3=0;
    while (
    $c3 count($c)) {

    $c4=0;
    while (
    $c4 count($d)) {

    $c5=0;
    while (
    $c5 count($e)) {

    $c6=0;
    while (
    $c6 count($f)) {

    $c7=0;
    while (
    $c7 count($g)) {

    $c8=0;
    while (
    $c8 count($h)) {

    $push$a[$c1]." - ".$b[$c2]." - ".$c[$c3]." - ".$d[$c4]." - ".$e[$c5]." - ".$f[$c6]." - ".$g[$c7]." - ".$h[$c8];

    array_push ($ris,  $push);

    echo 
    $push."
    "
    ;
                                                                 
    $c8++;
                            }                                                         
    $c7++;
                            }                                                                     
    $c6++;
                            }                                                                 
    $c5++;
                            }                                                                 
    $c4++;
                            }                                                                 
    $c3++;
                            }
    $c2++;
                            }
    $c1++;
                            }

    echo 
    count($ris);

    ?>

    Sono 6500 combinazioni e passa.... :master: mi sa che devo creare una formula di riduzione ora.. tipo togliere le giocate impossibili e quelle basate su vittorie mooolto improbabili.. conto di sfoltire fino a 500 giocate... la strada è in salita però..... :|

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 © 2025 vBulletin Solutions, Inc. All rights reserved.