Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Hardware, Software e Toys > Software
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 19-08-09, 12:42   #1 (permalink)
Esperto
 
Data di registrazione: Sep 2008
Ubicazione: UDINE
Messaggi: 375
Invia un messaggio tramite Skype a grisu59
Cerco Generatore di combinazioni NON casuali

Sto cercando se esiste un programma che generi in output un file con tutte le combinazioni possibili a partire da alcuni parametri dati

Le variabili sono
B blocchi (nel mio caso il valore va da 15 a 45)
N numeri (da 2 a 6)
L lunghezza Sequenza (da 6 a 16)

Attenzione: non mi basta che mi dia il numero delle combinazioni che si generano ma mi servirebbe anche lo sviluppo delle stesse.

Ad esempio
Esempio:
Io ho 45 blocchi composti da coppie di 2 numeri differenti (nessun numero si ripete nelle coppie)
e voglio generare tutte le combinazioni per ottenere sequenze di 8 numeri (non ripetuti) quindi 4 coppie

Se non erro dovrebbero essere 148.995 combinazioni
di cui vorrei ottenere lo sviluppo

Questo sarebbe il primo passo

Il secondo passo sarebbe un sistema di verifica
A partire da N sequenza di numeri (da 1 a 1000 sequenze) di lunghezza fissa 6
verificare quante corrispondenze intere o parziali (6, 5, 4, 3, 2, 1 corrispondenza ) ottengo nelle combinazioni dello sviluppo precedente.
Il livello di corrispondenza dovrebbe essere determinabile

Nell'esempio precedente
avendo 148.995 combinazioni voglio vedere quante corrispondenze intere o parziali ottengo nelle 500 sequenze di 6 numeri a mia disposizione.

E' chiaro che in alcune combinazioni posso ottenere più corrispondenze diverse
ad esempio
1 corrispondenza da 5 numeri
3 da 4 numeri
ecc.


Mi sapete dare qualche dritta?

Grazie
__________________
Hosting x noprofit. Esperto GT settore previdenziale

Ultima modifica di grisu59 : 19-08-09 12:57.
grisu59 non in linea   Rispondi citando
Vecchio 21-08-09, 00:49   #2 (permalink)
Consiglio Direttivo
Bibliotecario
 
L'avatar di Leonov
 
Data di registrazione: Oct 2008
Ubicazione: gt-Biblioteca; Forum; Wiki.
Messaggi: 9,445
Salve, Grisu59.

Se non ho capito male, cerchi qualcosa che gestisca e mandi in output una gran quantità di dati derivanti da processi di calcolo combinatorio (permutazioni e combinazioni di numeri, con o senza ripetizioni).

I due nomi che mi vengono subito in mente sono Mathematica di Stephen Wolfram e Matlab.

Sono entrambi a pagamento e, da quel che so, nemmeno troppo economici (il primo è un programma scientifico molto avanzato di calcolo simbolico che potrebbe facilmente fare ciò che chiedi, a patto di conoscere la sua sintassi; il secondo lavora prevalentemente con le matrici di dati ed è più orientato al calcolo numerico - sempre con sintassi dedicata).


Un'altra possibilità potrebbe essere quella di scrivere i programmi direttamente a mano: poiché si tratta - almeno nel primo passo - di calcolo combinatorio, una volta trovata la formula generale per il caso che ti riguarda, si tratterebbe solo di dire alla macchina cosa moltiplicare e cosa dividere per avere rapidamente (secondo la disponibilità del processore e della RAM, ovvio) lo sviluppo delle sequenze.

Un Matematico con un po' di conoscenze nel settore potrebbe facilmente formalizzare il problema e darti la formula finale, che opportunamente tradotta sarebbe di facile gestione nelle mani anche di un programmatore non espertissimo.

Per maggiori informazioni ti rimando a questa semplice introduzione, accessibile anche ai non iniziati.


Per il secondo passo, la sequenza potrebbe essere sviluppata in più tappe successive; azzardo una scaletta:

1) Confronto della lunghezza della stringa di input (assegnata da te e nota) con tutte quelle di output del precedente; sulla base di questo dato, sfruttamento per il confronto delle sole stringhe con lunghezza uguale a quella di input.
2) Mediante un sistema posizionale, verificare in più cicli le corrispondenze tra le cifre della stringa di input e quelle rese disponibili da 1). Specificamente:
2.1) Far conteggiare le corrispondenze singole.
2.2) Per quelle multiple, agire così: ogni volta che c'è una corrispondenza singola un contatore - con etichetta "Corrispondenza singola" - scatta di una unità e fa accedere la coppia "stringa di input & stringa passata dalla macchina" alla fase successiva, in cui si controllano le coincidenze doppie sulle restanti cifre dei due numeri in ballo.
2.3) I superstiti di questo passo vengono ripassati alla ricerca di triple e così via.
3) Stampa a video dei risultati in una tabella per colonne con somma finale delle occorrenze (= coincidenze) per ogni tipologia: singole, doppie, triple etc.
4) Ripetizione del processo per ciascuna sequenza di input (in numero variabile da 1 a 1000, sempre con un sistema di cicli che faccia girare la macchina finché non abbia esaurito ciò che tu le avrai dato in pasto).
6) Riassunto finale a video dei risultati col solito sistema delle colonne e delle somme.


Avendo una macchina abbastanza potente e tempo sufficiente, si dovrebbe poter riuscire a risolvere tutto senza sforzi mostruosi (creato il primo loop, è tutto uguale); lascio comunque la parola a un programmatore per i dettagli tecnici, in cui confesso di non essere attualmente in grado di potermi addentrare.

Saluti.
__________________
Bibliosaurus ModSenior --- Bibliotecario del Forum gt. Al vostro servizio.
Sono con te, sei con me.
Leonov ora è in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 14:50.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.