|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Pisa
Messaggi: 628
|
algoritmo di riduzione HELP!!
Codice:
' Ncolo sono le colonne del mio sistema in fase di sviluppo
' tmpColRid sono le colonne temporanee già inserite nel sistema ridotto
' Esiste è una variabile che mi dice se la colonna in fase di verifica
' alla fine della verifica è già coperta dal sistema (esiste=true) oppure no
' colonne è una matrice di 50000 x 8 elementi in cui memorizzo il mio sviluppo
' vettoreA,B,......H sono i vettori dove memorizzo i pronostici delle varie macchine
' in base alla posizione di arrivo A=1 ... H=8
sopra c'è la parte che crea le colonne
tmpColRid = Ncolo
Esiste = False
While (tmpColRid >= 1)
PuntiCol = 0
If colonne(tmpColRid, 1) = vettoreA(i1) Then PuntiCol = PuntiCol + 17
If colonne(tmpColRid, 2) = vettoreB(i2) Then PuntiCol = PuntiCol + 15
If colonne(tmpColRid, 3) = vettoreC(i3) Then PuntiCol = PuntiCol + 14
If colonne(tmpColRid, 4) = vettoreD(i4) Then PuntiCol = PuntiCol + 13
If colonne(tmpColRid, 5) = vettoreE(i5) Then PuntiCol = PuntiCol + 12
If colonne(tmpColRid, 6) = vettoreF(i6) Then PuntiCol = PuntiCol + 11
If colonne(tmpColRid, 7) = vettoreG(i7) Then PuntiCol = PuntiCol + 10
If colonne(tmpColRid, 8) = vettoreH(i8) Then PuntiCol = PuntiCol + 9
If (PuntiCol >= Garanzia) Then
Esiste = True
tmpColRid=1
End If
tmpColRid = tmpColRid - 1
Wend
' controllo se non ho superato la capacità della memoria, in tal caso
' aggiungo la colonna al sistema
' se la colonna da aggiungere è non è gia coperta (esiste) dal sistema ridotto la inserisco
' controllo se è la prima colonna che deve essere inserita
If (Ncolo < maxcolonne) And (Esiste = False) Then
Ncolo = Ncolo + 1
colonne(Ncolo, 1) = vettoreA(i1)
colonne(Ncolo, 2) = vettoreB(i2)
colonne(Ncolo, 3) = vettoreC(i3)
colonne(Ncolo, 4) = vettoreD(i4)
colonne(Ncolo, 5) = vettoreE(i5)
colonne(Ncolo, 6) = vettoreF(i6)
colonne(Ncolo, 7) = vettoreG(i7)
colonne(Ncolo, 8) = vettoreH(i8)
End If
c'è anche un metodo per ridurre sistemi partendo dallo sviluppo di un sistema integrale, ma in quel caso mi sarebbe impossibile ridurre sistemi integrali piu' grandi della quantità da me fissata per 50.000 colonne in questo caso invece posso ridurre sistemi piu' grandi che alla fine rientrano come occupazione della mia matrice Colonne entro le 50.000 unità Ho adattato questo algoritmo da quello che usavo per il totogol dove li controllavo la presenza nel sistema già sviluppato di almeno 6 o 7 punti rispetto ad una qualsiasi colonna gia ridotta, nel qual caso scartavo la colonna se invece non era coperta la inserivo e poi iteravo Non è un grande algoritmo di riduzione ma funziona, invece con questo della Formula 101 non mi tornano le colonne, ho provato a confrontare lo sviluppo con altri software che usano riduzione non ottimizzata ma il numero delle colonne non tornano Ravvisate per caso degli errori logici o matematici nell'algoritmo??? Per favore datemi un aiuto grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Ho capito bene........
durante lo sviluppo, e cioè, la prima colonna dello sviluppo già vai a ridurla? poi Ncolo diventa 2 colonne e rifai il ciclo per ridurre le due colonne?.....e ancora la terza colonna dello sviluppo la passi di nuovo per ridurle? oppure sviluppi 50.000 colonne e poi vai a ridurle, per poi passare alla seconda fase dello sviluppo per ulteriori 50.000 o meno per ridurle? |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2001
Città: Pisa
Messaggi: 628
|
Quote:
due anni fa quando iniziai a programmare, prima facevo lo viluppo e poi riducevo ma in questo modo avevo due problemi, il primo era che perdevo il tempo anche per fare il calcolo dell'integrale, il secondo era che non era possibile ridurre sistemi di grandezza superiore ad un certo limite che invece è possibile ridurre se la riduzione la fai in fase di sviluppo e per quanto riguarda superenalotto e totogol l'algoritmo funziona alla grande e confrontato con altri software mi da le stesse colonne logicamente è un'algoritmo molto banale non ottimo ma veloce ho fatto lo stesso algoritmo per la formula 101 ma confrontando i risultati con un'altro software trovato sulla rete (sono riuscito a trovarne solo 1) ho visto che il numero di colonne ridotte a parita di pronostico è molto diverso e non capisco se ho sbagliato qualcosa nell'algoritmo oppure se il software da me preso come confronto utilizza un'altro algoritmo il mio algoritmo funziona cosi sviluppo la prima colonna e la metto nel sistema ridotto al passo successivo genero le colonne in modo sequenziale e ogni colonna generata la confronto con quelle che sono già state messe nel mio sistema ridotto, se esiste almeno una colonna che soddisfa il termine di riduzione vuol dire che la colonna appena genereta è coperta dal sistema ridotto generato fino a quel momento, se invece la colonna generata non è coperta dal sistema ridotto generato fino a quel momento allora viene inserita nel sistema ridotto e cosi continuo lo sviluppo Ieri abbiamo cercato di dimostrare con un mio amico ingegnere la validità dell'algoritmo e sembra che sia giusto solo che non capisco il perchè di tali differenze nei risultati avevo gia dato un'occhiata al tuo sito e ho visto che anche tu hai fatto un algoritmo di riduzione ma non mi ci sono messo ad analizzarlo bene in quanto non ho trovata molta pulizia nel codice tu ravvisi qualche errore logico o di programmazione nel codice postato sopra? grazie |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
non non mi sembra che ci siano errore di flusso.
io sviluppo prima il sistema integrale e/o condizionato, poi lavoro sul file delle colonne ridotte e poi in ultimo le accorpo sempre. scrivo in sequenziale il file delle colonne ridotte, dopodichè apro il file ridotto e se il file è più di 20.000 colonne ne metto in matrice 20.000 ecosì via. le 20.000 colonne me leconfronto in 2 cicli for eliminando quelle a n-1. Il provedimento per la prima passata è da 1 a 20.000 (chiaramente ridotti da 20.000 col non ne faccio mai diciamo che faccio al massimo riduzioni tra 400 /1200 col di ridotto come media e dato che vendo il mio programma anche l'utente farà altrettando, questo perchè ad oggi nessun utente si è mai lamentato), comunque....... procedendo in questo modo, per esempio la riduzione di 6 dp integrale mi da un ridotto di 13 col, mentre il ridotto AOSI del 6 doppie è 12 col, l'altro modo di operare è fare sempre i due cicli for ma prendendo la prima colonna in modo random e controllare poi le col del ridotto eliminando quelle a n-1, in questo modo riesco a fare i primati ridotti. Non mi sono mai avvicinato ai primati di andrea paola e libero stolzi in quando loro adoperano una riduzione globale sul sistema ridotto che si va a confrontare su un sistema di 13 triple, questo a detta di un mio amico di verona che stava studiando come ottenere quei risultati, e secondo me lsi basano su algoritmi legato a reti neuronali. Per concludere: il listato delle riduzioni al superenalotto che hai visto è il mio algoritmo base di riduzione con cui lavoro. Attenzione perchè l'algoritmo che hai postato è corrento nel flusso ma non so dirti quanto sia valido, sicuramente puoi fare di meglio perchè non è detto che procedendo in quel modo ottieni un buo rapporto di riduzione , secondo me. link homepage http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/ forum http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:12.


















