Newsgroup: it.comp.lang.visual-basic
Titolo: aiuto: algoritmo per la garanzia del 5

nello sviluppare le combinazioni per il suoperenalotto qual'č l'algoritmo
con il quale scegliere in una serie di combinazioni quelle che mi
garantiscono il 5 (o il 4 o il 3), avendo per base n numeri?

nello sviluppare le combinazioni per il suoperenalotto qual'è l'algoritmo


>Come il buon Davide Greco ha insegnato (grazie ancora Davide), devi fare un
prego :-))
a proposito del controllo a ritroso..... affrontiamo subito il problema dei
grossi sistemi. Se la garanzia è per l'ambo o il terno il problema è
facilmente risolvibile. Infatti con un puntatore stabiliamo ad ogni colonna
gli ambi o i terni già soddisfatti e siamo a posto. Esempio
sistema di 8 numeri a garanzia terno
la 1°a colonna 1 2 3 4 5 soddisfa dieci terni
la 2*a colonna 1 2 6 7 8 soddisfa dieci terni (in questo caso per elaborare
la seconda colonna non abbiamo fatto il controllo a ritroso ma un controllo
lineare. Cioè abbiamo riscontrato che nessuno dei dieci terni fosse già
stato incluso in qualche combinazione).
Se infatti proviamo a simulare lo sviluppo effettuato dal PC
1° colonna 1 2 3 4 5 > OK.. salta al terzo elemento
2° colonna 1 2 4 5 6 > SCARTATA perchè il terno 1 2 4 è già stato
considerato...salta al terzo elemento
3° colonna 1 2 5 6 7 > SCARTATA perchè il terno 1 2 5 è già stato
considerato...salta al terzo elemento
4° colonna 1 2 6 7 8 > OK.. salta al terzo elemento
terzo elemento non disponibile salta al secondo elemento
5° colonna 1 3 4 5 6 > SCARTATA perchè il terno 1 3 4 è già stato
considerato...salta al terzo elemento
6° colonna 1 3 5 6 7 > SCARTATA perchè il terno 1 3 5 è già stato
considerato...salta al terzo elemento
7° colonna 1 3 6 7 8 > SCARTATA perchè il terno 1 6 7 è già stato
considerato...salta al terzo elemento
terzo elemento non disponibile salta al secondo elemento
8° colonna 1 4 5 6 7 > SCARTATA perchè il terno 1 4 5 è già stato
considerato...salta al terzo elemento
9° colonna 1 4 6 7 8 > SCARTATA perchè il terno 1 4 6 è già stato
considerato...salta al terzo elemento
terzo elemento non disponibile salta al secondo elemento
9° colonna 1 5 6 7 8 > SCARTATA perchè il terno 1 5 6 è già stato
considerato...salta al terzo elemento
terzo elemento non disponibile salta al secondo elemento
secondo elemento non disponibile salta al primo elemento
9° colonna 2 3 4 5 6 > SCARTATA perchè il terno 2 3 4 è già stato
considerato...salta al terzo elemento
ecc ecc
insomma spero di esser stato chiaro. Adesso il problema è che per Ambo e
Terno i puntatori ci sono e trattandosi di 4005 e 117480 elementi di una
matrice è tutto ok. Per quaterna e cinquina invece son dolori. Per cui
ammesso che si trovi una formula per conoscere la posizione della quartina
10 34 45 88 in mezzo ai due milioni di combinazioni resta il problema di
memorizzare una simile mole di dati. Per il momento idee non ne ho e poi a
ben guardare i sistemi per quaterna sono così controproducenti che forse non
ne vale la pena... oppure in tal caso possiamo sempre fare il controllo a
ritroso (che non è poi così lento se si considerano gruppi di 25-30 numeri)
a presto
Davide Greco

ecc...ecc ecc.
Ciao, io non so bene come funzionano questi giochi e non ho ben capito dove si vuole arrivare ma,
se mi fate capire il problema unisco volentieri la mia mente alle vostre visto che il problema mi
interessa anche dal punto di vista matematico (e penso di potermi ritenere abbastanza bravo in
questa materia). Naturalmente non posso garantire alcuna soluzione del vostro problema ma non si
sa mai. \:)
Ciao
    Diego

beh si tratta dei comuni sistemi (totogol, lotto, enalotto, ecc). Insomma
per fare un esempio. Abbiamo una massa numerica di 30 elementi e visto che
tutti non si possono giocare su una stessa bolletta vogliamo elaborare un
sistema (magari in bollette di  4 o 5 numeri) che ci dia la garanzia di
vincere 2 punti indovinando almeno 2 numeri sulla massa numerica.
Ad esempio
30 numeri (dall'1 al 30)
vogliamo la garanzia di 2 punti (cioè di vincere l'ambo)
la garanzia deve essere rispettata indovinando almeno 2 numeri sui 30
si sviluppa il sistema in cinquine ecc, ecc
il problema è che se la garanzia è superiore ai tre punti lo sviluppo
conterà moltissime colonne. Il problema è che nello sviluppo non ci devono
essere combinazioni ripetute (altrimenti sarebbe un integrale). A noi
interessa che se lo sviluppo conta 100 colonne non ci siano combinazioni
ripetute (in merito alla granzia indicata). Per cui se la garanzia è di 3
punti ci saranno sicuramente ambi ripetuti ma non terni!!
Lo sviluppo risulta reltivamente lento quando si tratta di moltissime
combinazioni perchè prima di assegnare una nuova bolletta allo sviluppo si
deve controllare che le combinazioni presenti in questa bolletta non siano
già presenti nelle bollette che abbiamo sviluppato. Quindi la prima bolletta
dello sviluppo è ok, la seconda invece deve essere tale da non ripetere
alcuna combinazione con la prima bolletta. La terza bolletta deve essere
tale da non ripetere alcuna combinazione con le prime due., ecc ecc
Proseguendo con sistemi molto grandi ad ogni nuova bolletta dobbiamo fare un
controllo a ritroso con tutte le precedenti... Per garanzia di Ambo o Terno
non c'è alcun problema perchè si tratta di dati facilmente memorizzabili che
quindi evitano il controllo a ritroso.. per garanzie superiori invece (per 4
numeri serve una matrice di 2,5 milioni) il controllo a ritroso è
necessario.
ciao
Davide
