Novità

Questo script genera 2.555.190 quartine con 90 numeri.

Tom ... me lo fai apposta ?

questo pezzo secondo te messo li dove lo hai messo va bene ? oppure io avevo detto cje doveva stare all'interno del ciclo piu interno ?
Codice:
acolonna(1) = Decina1(k1)
acolonna(2) = Decina2(k2)
acolonna(3) = Decina2(k3)
acolonna(4) = Decina2(k4)
acolonna(5) = Decina2(k5)
acolonna(6) = Decina2(k6)
acolonna(7) = Decina2(k7)
acolonna(8) = Decina2(k8)
acolonna(9) = Decina9(k9)

tutte le operazioni vanno fatte dentro questo ciclo dopo aver almentato la colonna , la progressbar la puoi alimentare considerando il valore di k9 rispetto a 10

Si quello non ho fatto in tempo a modificarlo in tempo prima della tua verifica.. :D

In effetti mi ero accorto di quello... ma dopo andava bene? Perchè mi si impalla tutto ugualmente... :eek:

Comunque pensando che si trattasse di troppi elementi 10 alla nona.. ecc.. come hai evidenziato anche tu ho provato con qualcosa di più piccolo (terni in decina diversa...) e in effetti qualcosa fa.. solo che non riesco a dirgli... in questo caso di considerare tutte le decine...

Codice:
Option Explicit
Sub Main


Dim k
Dim Classe
Dim aCol
ReDim aNum(90)
Dim i
Dim nSorte,Fine,RetRit1,QuantitaNumeriScelti,aRuoteSel,RuoteSelezionate,RetRitMax,RetIncrRitMax,RetFreq,Inizio
Dim ColTot
'ReDim aRuote(1)


ReDim aNum(0)
'QuantitaNumeriScelti = ScegliNumeri(aNum)



Dim Decina1(10)
Dim Decina2(10)
Dim Decina3(10)
Dim Decina4(10)
Dim Decina5(10)
Dim Decina6(10)
Dim Decina7(10)
Dim Decina8(10)
Dim Decina9(10)


Decina1(0) = 1
Decina1(1) = 2
Decina1(2) = 3
Decina1(3) = 4
Decina1(4) = 5
Decina1(5) = 6
Decina1(6) = 7
Decina1(7) = 8
Decina1(8) = 9
Decina1(9) = 10

Decina2(0) = 11
Decina2(1) = 12
Decina2(2) = 13
Decina2(3) = 14
Decina2(4) = 15
Decina2(5) = 16
Decina2(6) = 17
Decina2(7) = 18
Decina2(8) = 19
Decina2(9) = 20

Decina3(0) = 21
Decina3(1) = 22
Decina3(2) = 23
Decina3(3) = 24
Decina3(4) = 25
Decina3(5) = 26
Decina3(6) = 27
Decina3(7) = 28
Decina3(8) = 29
Decina3(9) = 30

Decina4(0) = 31
Decina4(1) = 32
Decina4(2) = 33
Decina4(3) = 34
Decina4(4) = 35
Decina4(5) = 36
Decina4(6) = 37
Decina4(7) = 38
Decina4(8) = 39
Decina4(9) = 40

Decina5(0) = 41
Decina5(1) = 42
Decina5(2) = 43
Decina5(3) = 44
Decina5(4) = 45
Decina5(5) = 46
Decina5(6) = 47
Decina5(7) = 48
Decina5(8) = 49
Decina5(9) = 50

Decina6(0) = 51
Decina6(1) = 52
Decina6(2) = 53
Decina6(3) = 54
Decina6(4) = 55
Decina6(5) = 56
Decina6(6) = 57
Decina6(7) = 58
Decina6(8) = 59
Decina6(9) = 60

Decina7(0) = 61
Decina7(1) = 62
Decina7(2) = 63
Decina7(3) = 64
Decina7(4) = 65
Decina7(5) = 66
Decina7(6) = 67
Decina7(7) = 68
Decina7(8) = 69
Decina7(9) = 70

Decina8(0) = 71
Decina8(1) = 72
Decina8(2) = 73
Decina8(3) = 74
Decina8(4) = 75
Decina8(5) = 76
Decina8(6) = 77
Decina8(7) = 78
Decina8(8) = 79
Decina8(9) = 80

Decina9(0) = 81
Decina9(1) = 82
Decina9(2) = 83
Decina9(3) = 84
Decina9(4) = 85
Decina9(5) = 86
Decina9(6) = 87
Decina9(7) = 88
Decina9(8) = 89
Decina9(9) = 90



'Quindi dichiariamo 9 variabili per gestire i 9 cicli ,saranno le variabili k1,k2,k3,k4,k5,k6,k7,k8,k9
'poi facciamo sti famosi cicli nidificati , sono 9 uno dentro l'altro ,
'il ciclo piu interno è ovviamente quello gestito da k9
'Benissmimo ! E' proprio dentro questo ciclo che andiamo a costruire la colonna di sviluppo.

Dim k1,k2,k3,k4,k5,k6,k7,k8,k9

ReDim acolonna(3)




For k1 = 1 To 10

For k2 = 1 To 10

For k3 = 1 To 10 ' nel ciclo più interno (k3) costruisco la colonna di sviluppo...

acolonna(1) = Decina1(k1)
acolonna(2) = Decina2(k2)
acolonna(3) = Decina3(k3)


Scrivi acolonna(1) & "-" & acolonna(2) & "-" & acolonna(3) 		

Next
		
Next
		
Next
		



'dopo che hai alimentato l'array disponi della colonna da analizzare ,
'proprio per l'algoritmo usato avrai solo colonne contenenti numeri di decine diverse.
'Ora ti Do la brutta notizia , un siffatto sistem produce 10^9 colonne se non erro ...
'pero il concetto è identico e lo puoi usare per creare Combinazioni di Classe piu piccola
'e lavorando anche sui contenuti degli Array di Base (i famosi Decina1, Decina2 ecc)












	'Dim RuoteSelezionate
	'Dim k
	ReDim aRuoteSel(12)
	RuoteSelezionate = ScegliRuote(aRuoteSel)
	
	Call Scrivi(" ---------------------------------------------------------------- ")
	Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE! ")
	Call Scrivi(" ---------------------------------------------------------------- ")


	For k = 1 To RuoteSelezionate
		Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))
		
	Next










'----------fine dichiarazione variabili-------------------------------

'Call StatisticaFormazioneTurbo(aCol,aRuote,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq,Inizio,Fine)


'Assegno alla sorte ricercata il valore 3
nSorte = 3

'Assegno al valore k i possibili numeri da 1 a 90 e ci costruisco un array aNum
'For k = 1 To 90
'aNum(k) = k
'Next


'Assegno alla variabile classe il valore 5 ovvero chiedo di generare le cinquine
Classe = 3


'Con questa espressione chiedo la generazione effettiva di tutte le cinquine


ColTot = InitSviluppoIntegrale(aNum,Classe)


'Si chiede di sviluppare tutte le combinazioni
If ColTot > 0 Then


Do While GetCombSviluppo(aCol) = True


i = i + 1


ReDim aRuoteTmp(1)


For k = 1 To RuoteSelezionate
		
		'Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))
aRuoteTmp(1) = aRuoteSel(k)


'RetRit1 = RitardoCombinazioneTurbo(aRuoteTmp,aCol,nSorte,Fine)

'RetRit1 = StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq,Inizio,Fine)

'RetRit1 = RitardoCombinazioneTurbo (aRuoteTmp,aCol,nSorte,Fine)

Call StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)

Dim Diff
Diff = RetRitMax - RetRit1

'Se questi ritardi sono maggiori di 1830 estrazioni
'If RetFreq > 0 Then
'If RetIncrRitMax > 0 Then

'If(RetRit1 >= 0) Then

Dim rapportoRARS
rapportoRARS = RetRit1/RetRitMax

If(RetRit1 >= 0) Then' And RetIncrRitMax = 0) Then
'If(RetRit1 >= 0 And Diff < 10 And RetIncrRitMax = 0) Then

'Call Scrivi("---QUI CI ANDREBBE IL NOME DELLA RUOTA ANALIZZATA---")
'si scrive a video il numero di combinazione generata , la combinazione generata e il suo RA
'Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(aCol) & " RA: " & RetRit1 & " RUOTA: " & NomeRuota(aRuoteSel(k)))

Call Scrivi(StringaNumeri(aCol))

End If


'---Procedura analoga per la ruota di CA e FI
'fine procedura analoga per CA e FI


'Si genera una barra verde... che ci segnala dove siamo e quanto manca per il termine dell'elaborazione...


Call AvanzamentoElab(1,ColTot,i) 'QUESTO E' IL TENTATIVO PER LA PROGRESS BAR


'Si scrive insieme alla barra il numero di colonna in fase di elaborazione...
Call Messaggio("Colonna " & i)
'Se si preme lo "STOP" del bottone apposito durante l'esecuzione dello script questo s'interrompe.
If ScriptInterrotto Then Exit Do
Next
Loop
End If
End Sub

Ps: Non te lo faccio a posta :) e che ho davvero uno o due neuroni attivi... rispetto i tuoi miliardi di neuroni iper allenati grandissimo ;)
 
Ultima modifica:
' ovvio che se lo fai di classe 3 e usi solo 3 array questi ultimi devono contenere 30 numeri ciascuno senno tutti i numeri delle decine dalla 4 in su non li avrai mai ...
non vedo la progrssbar .. se la metti penos che la sensazione di impallamento sparisca , anzi metti anche un messaggio con un contatore
 
Ultima modifica di un moderatore:
Tom ... me lo fai apposta ?

questo pezzo secondo te messo li dove lo hai messo va bene ? oppure io avevo detto cje doveva stare all'interno del ciclo piu interno ?
Codice:
acolonna(1) = Decina1(k1)
acolonna(2) = Decina2(k2)
acolonna(3) = Decina2(k3)
acolonna(4) = Decina2(k4)
acolonna(5) = Decina2(k5)
acolonna(6) = Decina2(k6)
acolonna(7) = Decina2(k7)
acolonna(8) = Decina2(k8)
acolonna(9) = Decina9(k9)

tutte le operazioni vanno fatte dentro questo ciclo dopo aver almentato la colonna , la progressbar la puoi alimentare considerando il valore di k9 rispetto a 10 ma in questo modo girera un sacco di volte .. senno devi calcolare quante colonne verrannno prodotte a priori e usare un contatore


Ho esteso le 3 decine a 30 elementi progressivi cadauna fino ad arrivare a 90 e ho messo al posto di i nella riga della progress bar il valore contatore...

ma il contatore mi evidenzia che vengono elaborate solo 27.000 colonne rispetto e le 84.000 terzine in decina diversa che dovrebbero essere...

Inoltre la progress bar non si visualizza per nulla forse perchè l'elaborazione richiede in questo caso meno di 1 sec. :)

Codice:
Option Explicit
Sub Main


Dim k
Dim Classe
Dim aCol
ReDim aNum(90)
Dim i
Dim nSorte,Fine,RetRit1,QuantitaNumeriScelti,aRuoteSel,RuoteSelezionate,RetRitMax,RetIncrRitMax,RetFreq,Inizio
Dim ColTot
'ReDim aRuote(1)


ReDim aNum(0)
'QuantitaNumeriScelti = ScegliNumeri(aNum)



Dim Decina1(30)
Dim Decina2(30)
Dim Decina3(30)
'Dim Decina4(10)
'Dim Decina5(10)
'Dim Decina6(10)
'Dim Decina7(10)
'Dim Decina8(10)
'Dim Decina9(10)


Decina1(1) = 1
Decina1(2) = 2
Decina1(3) = 3
Decina1(4) = 4
Decina1(5) = 5
Decina1(6) = 6
Decina1(7) = 7
Decina1(8) = 8
Decina1(9) = 9
Decina1(10) = 10
Decina1(11) = 11
Decina1(12) = 12
Decina1(13) = 13
Decina1(14) = 14
Decina1(15) = 15
Decina1(16) = 16
Decina1(17) = 17
Decina1(18) = 18
Decina1(19) = 19
Decina1(20) = 20
Decina1(21) = 21
Decina1(22) = 22
Decina1(23) = 23
Decina1(24) = 24
Decina1(25) = 25
Decina1(26) = 26
Decina1(27) = 27
Decina1(28) = 28
Decina1(29) = 29
Decina1(30) = 30

Decina2(1)=31
Decina2(2)=32
Decina2(3)=33
Decina2(4)=34
Decina2(5)=35
Decina2(6)=36
Decina2(7)=37
Decina2(8)=38
Decina2(9)=39
Decina2(10)=40
Decina2(11)=41
Decina2(12)=42
Decina2(13)=43
Decina2(14)=44
Decina2(15)=45
Decina2(16)=46
Decina2(17)=47
Decina2(18)=48
Decina2(19)=49
Decina2(20)=50
Decina2(21)=51
Decina2(22)=52
Decina2(23)=53
Decina2(24)=54
Decina2(25)=55
Decina2(26)=56
Decina2(27)=57
Decina2(28)=58
Decina2(29)=59
Decina2(30)=60

Decina3(1)=61
Decina3(2)=62
Decina3(3)=63
Decina3(4)=64
Decina3(5)=65
Decina3(6)=66
Decina3(7)=67
Decina3(8)=68
Decina3(9)=69
Decina3(10)=70
Decina3(11)=71
Decina3(12)=72
Decina3(13)=73
Decina3(14)=74
Decina3(15)=75
Decina3(16)=76
Decina3(17)=77
Decina3(18)=78
Decina3(19)=79
Decina3(20)=80
Decina3(21)=81
Decina3(22)=82
Decina3(23)=83
Decina3(24)=84
Decina3(25)=85
Decina3(26)=86
Decina3(27)=87
Decina3(28)=88
Decina3(29)=89
Decina3(30)=90




'Quindi dichiariamo 9 variabili per gestire i 9 cicli ,saranno le variabili k1,k2,k3,k4,k5,k6,k7,k8,k9
'poi facciamo sti famosi cicli nidificati , sono 9 uno dentro l'altro ,
'il ciclo piu interno è ovviamente quello gestito da k9
'Benissmimo ! E' proprio dentro questo ciclo che andiamo a costruire la colonna di sviluppo.

Dim k1,k2,k3,k4,k5,k6,k7,k8,k9

ReDim acolonna(3)

Dim contatore 

contatore = 0


For k1 = 1 To 30

For k2 = 1 To 30

For k3 = 1 To 30 ' nel ciclo più interno (k9) costruisco la colonna di sviluppo...

acolonna(1) = Decina1(k1)
acolonna(2) = Decina2(k2)
acolonna(3) = Decina3(k3)

Scrivi acolonna(1) & "-" & acolonna(2) & "-" & acolonna(3) 		

contatore=contatore+1

Scrivi                 

Scrivi contatore 

Next
		
Next
		
Next
		



'dopo che hai alimentato l'array disponi della colonna da analizzare ,
'proprio per l'algoritmo usato avrai solo colonne contenenti numeri di decine diverse.
'Ora ti Do la brutta notizia , un siffatto sistem produce 10^9 colonne se non erro ...
'pero il concetto è identico e lo puoi usare per creare Combinazioni di Classe piu piccola
'e lavorando anche sui contenuti degli Array di Base (i famosi Decina1, Decina2 ecc)












	'Dim RuoteSelezionate
	'Dim k
	ReDim aRuoteSel(12)
	RuoteSelezionate = ScegliRuote(aRuoteSel)
	
	Call Scrivi(" ---------------------------------------------------------------- ")
	Call Scrivi(" Le ruote sottostanti nella ricerca vengono considerate SEPARATE! ")
	Call Scrivi(" ---------------------------------------------------------------- ")


	For k = 1 To RuoteSelezionate
		Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))
		
	Next










'----------fine dichiarazione variabili-------------------------------

'Call StatisticaFormazioneTurbo(aCol,aRuote,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq,Inizio,Fine)


'Assegno alla sorte ricercata il valore 3
nSorte = 3

'Assegno al valore k i possibili numeri da 1 a 90 e ci costruisco un array aNum
'For k = 1 To 90
'aNum(k) = k
'Next


'Assegno alla variabile classe il valore 5 ovvero chiedo di generare le cinquine
Classe = 3


'Con questa espressione chiedo la generazione effettiva di tutte le cinquine


ColTot = InitSviluppoIntegrale(aNum,Classe)


'Si chiede di sviluppare tutte le combinazioni
If ColTot > 0 Then


Do While GetCombSviluppo(aCol) = True


i = i + 1


ReDim aRuoteTmp(1)


For k = 1 To RuoteSelezionate
		
		'Call Scrivi("Scelta ruota " & NomeRuota(aRuoteSel(k)) & " - " & SiglaRuota(aRuoteSel(k)))
aRuoteTmp(1) = aRuoteSel(k)


'RetRit1 = RitardoCombinazioneTurbo(aRuoteTmp,aCol,nSorte,Fine)

'RetRit1 = StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq,Inizio,Fine)

'RetRit1 = RitardoCombinazioneTurbo (aRuoteTmp,aCol,nSorte,Fine)

Call StatisticaFormazioneTurbo(aCol,aRuoteTmp,nSorte,RetRit1,RetRitMax,RetIncrRitMax,RetFreq)

Dim Diff
Diff = RetRitMax - RetRit1

'Se questi ritardi sono maggiori di 1830 estrazioni
'If RetFreq > 0 Then
'If RetIncrRitMax > 0 Then

'If(RetRit1 >= 0) Then

Dim rapportoRARS
rapportoRARS = RetRit1/RetRitMax

If(RetRit1 >= 0) Then' And RetIncrRitMax = 0) Then
'If(RetRit1 >= 0 And Diff < 10 And RetIncrRitMax = 0) Then

'Call Scrivi("---QUI CI ANDREBBE IL NOME DELLA RUOTA ANALIZZATA---")
'si scrive a video il numero di combinazione generata , la combinazione generata e il suo RA
'Call Scrivi(FormattaStringa(i,"00000") & " " & StringaNumeri(aCol) & " RA: " & RetRit1 & " RUOTA: " & NomeRuota(aRuoteSel(k)))

Call Scrivi(StringaNumeri(aCol))

End If


'---Procedura analoga per la ruota di CA e FI
'fine procedura analoga per CA e FI


'Si genera una barra verde... che ci segnala dove siamo e quanto manca per il termine dell'elaborazione...


Call AvanzamentoElab(1,ColTot,contatore) 'QUESTO E' IL TENTATIVO PER LA PROGRESS BAR


'Si scrive insieme alla barra il numero di colonna in fase di elaborazione...
Call Messaggio("Colonna " & i)
'Se si preme lo "STOP" del bottone apposito durante l'esecuzione dello script questo s'interrompe.
If ScriptInterrotto Then Exit Do
Next
Loop
End If
End Sub
 
Ultima modifica:
il contatore mi evidenzia che vengono elaborate solo 27.000 colonne rispetto e le 84.000 terzine in decina diversa che dovrebbero essere...

Inoltre la progress bar non si visualizza per nulla forse perchè l'elaborazione richiede in questo caso meno di 1 sec. :)

chiaro 30^3 fa 27000 .. tutto dipende dagli array di base quindi non è cosi semplice produre tutte le colone , devi creare un algoritmo
che esegue piu di una volta il blocco dei cicli ed ogni volta lo fa usando gli array di base opportunamente alimentati .
Ripeto ti conviene usare un file di testo prodotto con la funzione dei sistemi condizionati
 
chiaro 30^3 fa 27000 .. tutto dipende dagli array di base quindi non è cosi semplice produre tutte le colone , devi creare un algoritmo
che esegue piu di una volta il blocco dei cicli ed ogni volta lo fa usando gli array di base opportunamente alimentati .
Ripeto ti conviene usare un file di testo prodotto con la funzione dei sistemi condizionati

Ah quindi lo script che genera combinazioni in decina diversa di vari elementi in run time è da abbandonare? :( :eek: Peccato... ormai ci credevo quasi... :) Però in compenso ho visto la nuova tua chicca... "spaziale" che consente di fare quello che qui hai consigliato ;) . Il problema in questo caso è dettato dal fatto che quando si esportano le colonne condizionate queste sono costituite da righe aventi gli elementi separati da carattere spazio che non si gestisce bene con gli script. Sarebbe possibile esportarli con il carattere . (punto) ad esempio come elemento separatore? Perchè sostituire gli spazi in un secondo tempo è impresa titanica per determinati files di grosse dimensioni...
 
Ultima modifica:
chi l'ha detto che col carattere spazio non si possono gestire ?
si fa cosi

Dim aNumColonna ' da dichiarare in cima

' da usare durante lo sviluppo
aNumColonna = StringaNumeriToArray ( sRiga, " " )
For k = 1 To UBound(aNumColonna)
Call Scrivi (aNumColonna(k))
Next
 
chi l'ha detto che col carattere spazio non si possono gestire ?
si fa cosi

Dim aNumColonna ' da dichiarare in cima

' da usare durante lo sviluppo
aNumColonna = StringaNumeriToArray ( sRiga, " " )
For k = 1 To UBound(aNumColonna)
Call Scrivi (aNumColonna(k))
Next

Ok grazie!
Provo a gestirli con quest'aggiunta :)
GRAZIEEEEEEEEEEEEEEEEEEEEEEE
'Notte miticoooooooooooooooo ;)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 21 gennaio 2025
    Bari
    78
    09
    70
    03
    23
    Cagliari
    32
    88
    30
    13
    45
    Firenze
    87
    23
    15
    39
    86
    Genova
    71
    48
    67
    59
    23
    Milano
    58
    50
    80
    85
    29
    Napoli
    90
    81
    79
    82
    62
    Palermo
    70
    33
    90
    05
    10
    Roma
    15
    71
    55
    85
    76
    Torino
    89
    09
    18
    33
    69
    Venezia
    44
    80
    82
    73
    58
    Nazionale
    80
    25
    13
    63
    17
    Estrazione Simbolotto
    Bari
    39
    36
    34
    14
    31
Indietro
Alto