Non cambia niente. La tecnica è sempre quella. Basta che parti con un array, che siano lettere, numeri, istanze di una classe a tuo piacimento etc etc non fa differenza.
Non cambia niente. La tecnica è sempre quella. Basta che parti con un array, che siano lettere, numeri, istanze di una classe a tuo piacimento etc etc non fa differenza.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
scusami stavo editando il mex mentre scrivevi xd
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
vale lo stesso quanto ho scritto sopra.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
quindi dici che se avessi un array di 200 e li prendo a 5 dovrebbe andare comunque bene?
mi sembra un po inverosimile
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
vabbhè, non è che verificano se un numero di 100 miliardi di cifre sia primo o meno su un iphone... se pensi che 5 cicli annidati siano meno dispendiosi e/o meglio manegiabili di una cosa del genere:
fai una prova e vedi.codice:/** * * @author Andrea */ public class TutteLeCombinazioni { public String[] elem = {"a", "b", "c", "d", "e", "f", "g", "h"}; public int SET_Length = 5; public void stampa() { int top = (int)Math.pow(elem.length, SET_Length); String temp; for (int i = 0; i < top; i++) { temp = ""; int k = i; for (int j = SET_Length-1; j >= 0; j--) { temp = elem[k % elem.length]+temp; k = k / elem.length; } System.out.println(temp); } } public static void main (String[] args) { (new TutteLeCombinazioni()).stampa(); } }
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
in effetti per la binomiale va bene, ma non va bene per quella a blocchi in quanto bisognerebbe togliere i doppioni.
per la top non c'è problema, ma resta quello dei doppioni
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
qualcuno ha qualche idea???
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
1 - Calcoli tutte le disposizioni.
2 - Tra le disposizioni calcolate consideri quelle che non presentano ripetizioni ed escludi le altre disposizioni che risultano essere uguali (anche se gli oggetti al loro interno non rispettano l'ordine).
Esegui il passo 2 esattamente n! / (k!(n-k)!).
Ti assicuro che così ottieni l'estrazione in blocchi corretta. Qualsiasi siano n e k con k<=n!
Per n intendo il numero degli oggetti che vai a considerare, mentre k è la classe in cui li vuoi disporre.
il problema del calcolo delle combinazioni non sursiste.
il problema è quello di eliminare i doppioni per contenuto e ordine
I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html
Se fai quello che ti ho scritto sopra ci riesci!Originariamente inviato da Naruto 92
il problema del calcolo delle combinazioni non sursiste.
il problema è quello di eliminare i doppioni per contenuto e ordine
Le disposizioni calcolate mediante il coefficiente binomiale sono incluse in tutte le combinazioni (quelle le ottieni applicando l'algoritmo di andrea, io uso una variante ma questo poco importa).
Ti basta creare uno o due metodi che lavorano sull'insieme completo di combinazioni, quindi cosi le riesci a trovare.