81 messaggi dal 12 settembre 2010
Ciao a tutti,
da diverse settimane (forse anche un mese) sto spendendo molte ore (e perdendo ore di sonno) nella scrittura di un algoritmo da utilizzare all'interno di un progetto web che porto avanti da circa un anno.

Ho la necessità di generare delle permutazioni senza ripetizione di una lista di interi (i singoli numeri interi sono tutti differenti tra di loro).

Ho trovato diversi algoritmi per realizzare le permutazioni ma dato che in presenza di un numero elevato di interi (ad es. in presenza di un array di 11 interi) il calcolo di tutte le possibili permutazioni diventa molto elevato e quindi molto oneroso ho la necessità di generare solo le permutazioni che soddisfano una determinata condizione.

Quindi quello che ho pensato è questo:
- prima di generare una determinata permutazione verificare che ogni singolo elemento della lista soddisfi una determinata condizione
- se ogni singolo elemento della lista soddisfa la condizione allora genero la permutazione
- se un solo elemento della lista non soddisfa la condizione allora vado avanti con la generazione della prossima permutazione (immagino che qui serva una ricorsione o qualcosa di simile...)

Ovviamente ho provato ad applicare questi concetti ad alcuni algoritmi che ho trovato in rete ma non sono riuscito nell'intento...spero possiate aiutarmi indicandomi un semplice esempio che applica quanto riportato sopra poi ovviamente lo andrò ad adattare ed ampliare...

Vi ringrazio in anticipo a tutti!!!
308 messaggi dal 08 gennaio 2011
Ciao, devi esprimerti meglio.
Per quanto ho capito io il tuo problema è trovare tutte le permutazioni di n elementi distinti quindi senza ripetizioni escludendo o includendo quelle che soddisfano una o più condizioni.

Non dici per esempio se k è o non è diverso da n;
Non dici nulla su cosa dovrebbe essere la/e condizione/i;
Dici che devi verificare se ogni elemento rispetta una certa condizione e qui vado in tilt. Semmai è un raggruppamento di elementi che deve rispettare una condizione.

Facciamo un esempio
Elementi :a,b,c
k=2
Condizione : Escludi i raggruppamenti che contengono al secondo posto l'elemento a
permutazioni :a,b; a,c; b,c; c,b.

Il difficile sta nel definire e applicare la condizione.
Se sei più chiaro è più facile aiutarti.
Ciao.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.