lotto_tom75
Advanced Premium Member
Dunque...
Con questo code sottostante ho provato ad effettuare in automatico la comunanza e la differenziazione di tre gruppi che mi sono necessari per successivi sviluppi di studio sulla NZ e che ricavarli ogni volta a mano sarebbe abbastanza lento e noioso... ?
I tre gruppi base "dinamici" e sempre diversi sono:
1)LUNGHETTA A vettore attualmente fisso
2)LUNGHETTA B vettore attualmente fisso
3)usciti nelle ultime 21 estrazioni vettore dinamico
lunghetta A e B vengono confrontate per adesso correttamente in quanto entrambe hanno la forma vettore (a1 e a3) identica e per adesso statica... ovvero implementata con i suoi elementi totali direttamente nel codice mentre gli usciti nelle ultime 21 estrazioni sono appunto dinamicamente ricavati ogni volta dal relativo code che si occupa anche di metterli nel rispettivo array ax.
Il problema è che quando vado a confrontare ax con gli altri due vettori (lunghetta A e lunghetta B) come si vede lanciando semplicemente un output... il confronto non avviene e sia il vettore degli elementi divergenti sia quello di quelli comuni restano vuoti...
Con questo code sottostante ho provato ad effettuare in automatico la comunanza e la differenziazione di tre gruppi che mi sono necessari per successivi sviluppi di studio sulla NZ e che ricavarli ogni volta a mano sarebbe abbastanza lento e noioso... ?
Codice:
Option Explicit
Sub Main
Dim a1,a2,s,s2,s3,s4,s5,s6
Dim ax
ax = Array(0)
Dim k
Dim classe
Dim acol
ReDim anum(90)
Dim i
Dim nsorte,fine,retrit1,quantitanumeriscelti,aruotesel,ruoteselezionate,retritmax,retincrritmax,retfreq,inizio
Dim coltot
Dim contatore
contatore = 1
ReDim anum(0)
quantitanumeriscelti = ScegliNumeri(anum)
ReDim aruotesel(12)
ruoteselezionate = ScegliRuote(aruotesel)
Call Scrivi(" ---------------------------------------------------------------- ")
Call Scrivi(" le ruote sottostanti nella ricerca vengono considerate separate! ")
Call Scrivi(" ---------------------------------------------------------------- ")
Call Scrivi
Call Scrivi("data elaborazione: " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
Call Scrivi
Call Scrivi("range elaborazione: " & giorno(EstrazioneIni) & "-" & Mese(EstrazioneIni) & "-" & Anno(EstrazioneIni) & " --- " & giorno(EstrazioneFin) & "-" & Mese(EstrazioneFin) & "-" & Anno(EstrazioneFin))
Call Scrivi
Dim ini,fin
Call Scrivi
Call Scrivi("numero delle ultime estrazioni esaminate: " & EstrazioneFin - EstrazioneIni)
Call Scrivi
For k = 1 To ruoteselezionate
Call Scrivi("scelta ruota " & NomeRuota(aruotesel(k)) & " - " & SiglaRuota(aruotesel(k)))
Next
nsorte = 1
classe = 1
coltot = InitSviluppoIntegrale(anum,classe)
If coltot > 0 Then
Call Scrivi
Call Scrivi(" sviluppo in classe: " & classe & " sorte " & nsorte)
Call Scrivi
Do While GetCombSviluppo(a2) = True
i = i + 1
ReDim aruotetmp(1)
For k = 1 To ruoteselezionate
aruotetmp(1) = aruotesel(k)
Call StatisticaFormazioneTurbo(a2,aruotetmp,nsorte,retrit1,retritmax,retincrritmax,retfreq)
Dim diff
diff = retritmax - retrit1
Dim rapportorars
Dim stringafiltro
stringafiltro = "retrit1 <= 21"
If(retrit1 >= 0 And retrit1 <= 21) Then
Call Messaggio("trovata!!! :) per la ruota di: " & SiglaRuota(aruotesel(k)) & ". siamo alla riga n. " & i)
Call Scrivi(StringaNumeri(a2) & ".",,False)
ax = array_push(ax,StringaNumeri(a2))
Else
End If
Call AvanzamentoElab(1,coltot,i) 'questo e' il tentativo per la progress bar
If ScriptInterrotto Then Exit Do
Next
Loop
End If
Scrivi
Call Scrivi
Call Scrivi(" tempo trascorso: " & TempoTrascorso)
Call Scrivi
Call Scrivi(" filtro utilizzato: " & stringafiltro)
Scrivi
Call Scrivi("usciti nelle ultime 21 estrazioni " & StringaNumeri(ax) & ".",,False)
Call SplitByChar(StringaNumeri(ax),".",ax)
Scrivi
Scrivi
Dim a3
'vettori statici di esempio caricati direttamente nel code con valori fittizi...
a1 = Array(0,1,2,4,5,6,7,9,10,11,13,15,16,17,18,19,20,21,22,23,25,26,27,28,29,30,31,32,33,35,36)
a3 = Array(0,2,4,5,6,7,9,13,15,18,19,20,21,23,25,26,27,28,30,31,33,36,37,39,42,43,44,49,50,52,54)
Call getmancante(a1,ax,s)
Call Scrivi(" lunghetta A: " & StringaNumeri(a1) & " quantita' " & UBound(a1))
Call Scrivi(" usciti nelle ultime 21 estrazioni: " & StringaNumeri(ax) & " quantita' " & UBound(ax))
Call Scrivi(" lunghetta B: " & StringaNumeri(a3) & " quantita' " & UBound(a3))
Scrivi
Scrivi " confronto... "
Scrivi
Dim v,v2
Call SplitByChar(s," ",v)
Call Scrivi(" elementi divergenti tra lunghetta A e usciti nelle ultime 21 estrazioni: " & s & " quantita' " & UBound(v))
Call getcomuni(a1,ax,s2)
Call SplitByChar(s2," ",v2)
Call Scrivi(" elementi comuni tra lunghetta A e usciti nelle ultime 21 estrazioni : " & s2 & " quantita' " & UBound(v2))
Scrivi
Scrivi "-------------------------------------------------------------------------------------------------------------------------"
Scrivi
Call Scrivi(" lunghetta A x a su NZ " & StringaNumeri(a1))
Call Scrivi(" lunghetta B x a su NZ : " & StringaNumeri(a3))
Scrivi
Scrivi " confronto... "
Scrivi
Call getmancante(a1,a3,s3)
Dim v3,v4
Call SplitByChar(s3," ",v3)
Call Scrivi(" elementi divergenti tra lunghetta A e lunghetta B: " & s3 & " quantita' " & UBound(v3))
Call getcomuni(a1,a3,s4)
Call SplitByChar(s4," ",v4)
Call Scrivi(" elementi comuni tra lunghetta A e lunghetta B: " & s4 & " quantita' " & UBound(v4))
Scrivi
Scrivi "-------------------------------------------------------------------------------------------------------------------------"
Scrivi
Call Scrivi(" usciti nelle ultime 21 estrazioni " & StringaNumeri(ax))
Call Scrivi(" lunghetta B: " & StringaNumeri(a3))
Scrivi
Scrivi " confronto... "
Scrivi
Call getmancante(ax,a3,s5)
Dim v5,v6
Call SplitByChar(s5," ",v5)
Call Scrivi("elementi divergenti tra usciti nelle ultime 21 estrazioni e lunghetta B: " & s5 & " quantita' " & UBound(v5))
Call getcomuni(ax,a3,s6)
Call SplitByChar(s6," ",v6)
Call Scrivi("elementi comuni tra usciti nelle ultime 21 estrazioni e lunghetta B: " & s6 & " quantita' " & UBound(v6))
End Sub
Sub getmancante(a1,a2,s)
Dim n,n1,bret',s
s = ""
For n = 1 To UBound(a1)
bret = True
For n1 = 1 To UBound(a2)
If a1(n) = a2(n1) Then bret = False
Next
If bret Then s = s & a1(n) & " "
Next
End Sub
Sub getcomuni(a1,a2,s2)
Dim n,n1,bret',s
s2 = ""
For n = 1 To UBound(a1)
bret = False
For n1 = 1 To UBound(a2)
If a1(n) = a2(n1) Then bret = True
Next
If bret Then s2 = s2 & a1(n) & " "
Next
End Sub
Function array_push(arr,vars)
Dim k,newelem,newarrsize,elem
If IsArray(arr) Then
If Len(vars) > 0 Then
If InStr(vars,",") = False Then
newarrsize = CInt(UBound(arr) + 1)
ReDim Preserve arr(newarrsize)
arr(newarrsize) = vars
Else
k =(UBound(arr) + 1)
newelem = Split(vars,",")
newarrsize = CInt(UBound(arr) + UBound(newelem) + 1)
ReDim Preserve arr(newarrsize)
For Each elem In newelem
arr(k) = Trim(elem)
k = k + 1
Next
End If
End If
array_push = arr
Else
array_push = False
End If
End Function
Function selesito
Dim ret
Dim avoci
For ret = 1 To 1
selesito = ret
Next
End Function
I tre gruppi base "dinamici" e sempre diversi sono:
1)LUNGHETTA A vettore attualmente fisso
2)LUNGHETTA B vettore attualmente fisso
3)usciti nelle ultime 21 estrazioni vettore dinamico
lunghetta A e B vengono confrontate per adesso correttamente in quanto entrambe hanno la forma vettore (a1 e a3) identica e per adesso statica... ovvero implementata con i suoi elementi totali direttamente nel codice mentre gli usciti nelle ultime 21 estrazioni sono appunto dinamicamente ricavati ogni volta dal relativo code che si occupa anche di metterli nel rispettivo array ax.
Il problema è che quando vado a confrontare ax con gli altri due vettori (lunghetta A e lunghetta B) come si vede lanciando semplicemente un output... il confronto non avviene e sia il vettore degli elementi divergenti sia quello di quelli comuni restano vuoti...
Ultima modifica: