Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56

    Combinazione Semplice elementi Array

    Come da titolo sto cercando di fare un piccolo algoritmo in java che mi restituisca tutte le possibili combinazioni tra determinati elementi:
    Dato un array { 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8 } nel quale i 4 numeri vengono ripetuti 4 volte, io in pratica vorrei combinare gli elementi di questo array in tutti i modi possibili così che vengano 16^16 combinazioni.
    So che potrei farlo facendo scalare ogni volta gli indici in modo da trovare tutte le combinazioni ma con 16^16 ci vogliono tantissimi controlli e quindi il programma viene oltremodo "inciampato".

    In caso la mia richiesta non sia chiara faccio un semplice esempio: io ho un mazzo di carte con tutti i Jack, Donne, Re ed Assi... ovviamente ci sono 4 Jack ognuno dei quali con un diverso simbolo e ciò vale anche per le altre. Ora a me serve sapere tutte le possibili combinazioni con tale mazzo.

    Come posso fare per avere un algoritmo che mi permetta di fare ciò ma nel modo più semplice possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Guarda un pò se va bene..

    codice:
    public class combin
    {
    	public static void main(String [] Args)
    	{
    		int i;
    		int c;
    		int [] array = { 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8 };
    		
    			for (i=0; i<16; i++)
    		{
    			for (c=0; c<16; c++)
    			{
    				if (c == i)
    				{
    					continue; // immagino ke un jack di pikke non deve 
                                                          // combinarsi insieme ad un altro jack di pikke 
    				}
    				else
    				{
    					System.out.println(array[i] +" , "+array[c]);
    				}
    			}
    		}
    	}
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Ti ringrazio per la risposta ma non è ciò che intendevo. Io ho bisogno di generare 16^16 stringhe di 16 caratteri.. ad esempio:
    5555 6666 7777 8888
    5576 7655 8876 7886
    sono entrambe stringhe valide. Come nel mazzo di 16 carte, esse si mischiano creando 16^16 combinazioni in quanto ogni Jack, ogni Regina, ogni Re ed ogni Asso sono carte che possono essere combinate insieme: un Jack di fiori non ne esclude uno di cuori!

  4. #4
    Originariamente inviato da frank094
    Ti ringrazio per la risposta ma non è ciò che intendevo. Io ho bisogno di generare 16^16 stringhe di 16 caratteri.. ad esempio:
    5555 6666 7777 8888
    5576 7655 8876 7886
    sono entrambe stringhe valide. Come nel mazzo di 16 carte, esse si mischiano creando 16^16 combinazioni in quanto ogni Jack, ogni Regina, ogni Re ed ogni Asso sono carte che possono essere combinate insieme: un Jack di fiori non ne esclude uno di cuori!
    Si ma prova anche tu a scrivere una soluzione, ben presto un moderatore ti avviserà che stai usando male il forum e probabilmente ti chiuderà il thread. Il mio consiglio è di fare uno sforzo e provare ad elaborare un algoritmo e postare il codice rilevante sul forum in caso di difficoltà in modo da ricevere aiuto al riguardo. Attendiamo fiduciosi il tuo codice .
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Ho capito okok..in effetti non avevo capito.. appena ho un pò di tempo cerco di risolvere, ora vado di fretta. Comunque ti consiglio di seguire il consiglio di
    unomichisiada.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Adesso non ho il codice disponibile ma ho in mente un modo con cui risolvere il problema.. penso funzioni sicuramente però è piuttosto lungo e complesso!

    Ho un'array di 16 elementi; prendo il primo elemento e creo un nuovo array di 15 elementi togliendo quello appena preso. Quindi ora in un array che dovrebbe contenere i risultati inserisco le possibili combinazione tra 1 e gli altri 15 elementi. Ora ho un array con elementi da 2 cifre.. e ora vado ad aggiungere a questo 2 cifre le altre possibili combinazioni facendo array provvisori togliendogli il numero contenuto nel 2 cifre.

    In effetti è piuttosto "Inciampato" anche da spiegare; se avete altre idee NON forzatamente codice, ma idee per farlo in modo più semplice dite pure e io proverò !

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Ok controlla se ho capito bene. Ho 16 carte uguali ma di segni diversi, ora, tu prendi quattro carte dal mazzo. Vorresti sapere tutte le combInazioni che potresti avere in mano giusto?? Solo che il risultato lo vuoi in stringhe contenenti 4 combinazione l'una.. Per es.
    5555 5556 5557 5558 un risultato
    5565 5575 5585 5586 un altro risultato
    Ho capito bene ?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    56
    Si hai capito benissimo però non può andare oltre i 4 cinque che sono disponibili nell'array!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Allora ho abbozzato un codice ma non mi risulta che debbano uscire 16^16 stringhe ne combinazioni..come hai ottenuto quel valore ???

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    confermo che non sono affatto 16 ^ 16 combinazioni..
    Comunque prima che chiudano la conversazione (strano che sia ancora aperta xD) ci sent per messaggi privati..appena puoi mandami un mess privato così parliamo liberamente. 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 © 2025 vBulletin Solutions, Inc. All rights reserved.