Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Aiuto novellino su calcolo combinatorio ed eliminazione di alcuni risultati

    Ciao a tutti!
    Dovrei creare un codice (qualsiasi linguaggio va bene) che mi permetta di creare tutte le combinazioni possibili di 52 elementi presi a gruppi di 5 (l'ordine non conta e non ci devono essere ripetizioni) e che elimini tutte le combinazioni che presentino degli elementi che vengono inseriti di volta in volta.

    Per farvi capire meglio faccio un esempio con 3 elementi presi in gruppi di 2:
    a b c

    a b
    b c
    a c

    Inserisco c da qualche parte
    E mi viene restituito il risultato

    a b

    Non mi interessano tutte le combinazioni possibili ma solo il risultato finale...

    Grazie mille a tutti quelli che risponderanno

  2. #2

    Moderazione

    E la domanda qual'è?

    Nel senso, ti servono consigli sull'algoritmo? Su come implementarlo in un qualche linguaggio? Che tentativi hai fatto?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie della risposta!

    Ho provato a fare così:

    pagina index dove ci sta il form

    codice:
    <html>
    <body>
        <form action="action.php" method="post">
            
    
    Giocatore1 <input name="C1G1" type="text" value=""></p>
            
    
    <input name="C2G1" type="text" value=""></p>
            
    
    Giocatore2 <input name="C1G2" type="text" value=""></p>
            
    
    <input name="C2G2" type="text" value=""></p>
            
    
    Giocatore3 <input name="C1G3" type="text" value=""></p>
            
    
    <input name="C2G3" type="text" value=""></p>
            
    
    Giocatore4 <input name="C1G4" type="text" value=""></p>
            
    
    <input name="C2G4" type="text" value=""></p>
            
    
    Giocatore5 <input name="C1G5" type="text" value=""></p>
            
    
    <input name="C2G5" type="text" value=""></p>
            
    
    <input type="submit"></p>
        </form>
    </body>
    </html>
    action.php

    codice:
    <?php
    $valori=array(A,B,C,D,E,F,G,H,I,L,M);
    for ($i=0;$i<count($valori);$i++) {
        $k=$i;
        while ($k<(count($valori)-1)) {
           echo "$valori[$i]";
           $k++;
           echo "$valori[$k] ";
        }
    } ?>
    però devo fare in modo che gli elementi che inserisco nel Form elimino gli elementi di
    codice:
    $valori=array(A,B,C,D,E,F,G,H,I,L,M);
    Esempio: se inserisco A B C il codice mi deve generare tutte le combinazioni possibili con le rimanenti lettere!

  4. #4
    Parti con l'insieme di tutti gli elementi; quindi, elimina quelli che non ti interessano (si può fare in maniera efficiente usando un set).
    A questo punto, tolti gli elementi che non ti interessano, puoi usare i normali algoritmi per l'enumerazione delle combinazioni.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Tradotto in "PAPPA PRONTA" sarebbe?

  6. #6
    Originariamente inviato da MadLucien
    Tradotto in "PAPPA PRONTA" sarebbe?
    Più pappa pronta di una pagina in cui c'è riportato l'algoritmo in questione in millemila linguaggi...

    (ciò fermo restando che la pappa pronta non è particolarmente ben vista su questo forum )
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    ho fatto delle modifiche e sono giunto a questo:
    inserisco dei numeri da 1 a 12 (in seguito lo porto fino a 52) nel form.
    elimino dall'array i valori che corrispondono a quel valore.
    creo le combinazioni di 8 elementi (12 elementi totali meno 4 inseriti) di classe 2 possibili (28 combinazioni).

    index.html

    codice:
    <html> 
    <body> 
    <form action="action.php" method="POST">  
    
    
    Giocatore1 <input type="text" name="C1G1" value="" /></p> 	
    
    
    <input type="text" name="C2G1" value="" /></p>  
    
    
    Giocatore2 <input type="text" name="C1G2" value="" /></p>  	
    
    
    <input type="text" name="C2G2" value="" /></p>  
    
    
    <input type="submit"></p> 
    </form> 
    </body> 
    </html>
    action.php

    codice:
    <?php  $carte=array(1=>C1,C2,C3,Q1,Q2,Q3,F1,F2,F3,P1,P2,P3);
    
    $C1G1=$_POST["C1G1"]; 
    $C2G1=$_POST["C2G1"]; 
    $C1G2=$_POST["C1G2"]; 
    $C2G2=$_POST["C2G2"];  
    
    unset($carte[$C1G1]); 
    unset($carte[$C2G1]); 
    unset($carte[$C1G2]); 
    unset($carte[$C2G2]);  
    
    print_r ($carte);  
    
    $valori=$carte;  
    
    for ($i=0;$i<count($valori);$i++) {    
    $k=$i;    
    while ($k<(count($valori)-1)) {       
    echo "$valori[$i]";       
    $k++;       
    echo "$valori[$k] 
    ";    } 
    }   
    ?>
    il problema è che così mi non vengono generate tutte le combinazioni, ma solo una parte :/

  8. #8

    Moderazione

    Trattandosi di PHP, sposto nell'apposita sezione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    ok ti ringrazio MItaly!

    qualcuno mi può aiutare?

  10. #10
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non si capisce che vuoi fare devi generare coppie?

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.