L
LuigiB
Guest
i party alla tua età ? Mascalzone !!!
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
i party alla tua età ? Mascalzone !!!
ahahh speramo er piu tardi possibile !! Vedo che l'ebrezza alcolica ti avvicina alla capitale ... che ste sei bevuto er vino de li castelli ? ehehe
ciao , ecco lo script
Codice:Option Explicit Class clsEstrazione Dim aNum(5) Dim mRuota Dim mRitardo Sub SetNum(iPos,num) aNum(iPos) = num End Sub Public Property Let Ruota(v) mRuota = v End Property Public Property Let Ritardo(v) mRitardo = v End Property Public Property Get Ritardo Ritardo = mRitardo End Property Sub CreaStatEstratti(Inizio,fine) Dim nFrq ReDim aRuote(1) Dim k,j,i,iPos Const nRitDaPrendere = 10 aRuote(1) = mRuota ' frequenze ReDim aN(1) ReDim aNumPerFrq(5,2) i = 0 For k = 1 To 5 If aNum(k) > 0 Then i = i + 1 aN(1) = aNum(k) Call StatisticaFormazione(aN,aRuote,1,0,0,0,nFrq,Inizio,fine) aNumPerFrq(i,1) = aN(1) aNumPerFrq(i,2) = nFrq End If Next Call OrdinaMatrice(aNumPerFrq,- 1,2) '========================================================00 ' elenco ritardi ReDim aValori(nRitDaPrendere,16) i = 0 iPos = 2 For k = 1 To 5 If aNumPerFrq(k,1) > 0 Then aN(1) = aNumPerFrq(k,1) ReDim aRetRitardi(0) ReDim aReIdEstr(0) Call ElencoRitardi(aN,aRuote,1,1,fine,aRetRitardi,aReIdEstr) For j = 1 To nRitDaPrendere aValori(j,1) = j - 1 i = UBound(aRetRitardi) -(j - 1) If i > 0 Then aValori(j,iPos) = aRetRitardi(i) aValori(j,iPos + 1) = GetDiffColpi(aRetRitardi,i) aValori(j,iPos + 2) = GetPosSortita(aN(1),aReIdEstr(i) - aRetRitardi(i)) End If Next iPos = iPos + 3 End If Next Call CreaTabStatistica(aNumPerFrq,aValori) End Sub Function GetPosSortita(N,idEstr) Dim k For k = 1 To 5 If Estratto(idEstr,mRuota,k) = N Then GetPosSortita = k Exit For End If Next End Function Function GetDiffColpi(aRitardi,j) Dim r If j > 1 Then GetDiffColpi = aRitardi(j) - aRitardi(j - 1) Else GetDiffColpi = "-" End If End Function Sub CreaTabStatistica(aN,aValori) Dim k,j,i ReDim aV(16) ReDim aColSpan(16) ReDim aColori(16) ReDim aColoreFont(16) Dim nColor For k = 1 To 16 aColoreFont(k) = vbBlack Next For k = 4 To 16 Step 3 aColoreFont(k) = vbRed Next Call Scrivi(FormatSpace(NomeRuota(mRuota),150),True,,vbCyan) Call Scrivi("Formazione : " & StringaNumeri(aNum,,True)) Call Scrivi("Ritardo : " & mRitardo) Call Scrivi aColori(1) = vbYellow For k = 2 To 14 Step 3 If k Mod 2 = 0 Then nColor = vbWhite Else nColor = RGB(255,255,192) End If For j = k To(k + 2) aColori(j) = nColor Next Next ' titolo prima riga contiene la ruota aV(1) = NomeRuota(mRuota) aColSpan(1) = 16 For k = 2 To 16 aColSpan(k) = 0 Next Call InitTabella(aV,RGB(128,128,255),,6,vbWhite,"Courier New",aColSpan) ' Seconda riga Intestazione colonne aV(1) = "" aV(2) = "Num" : aV(4) = "Frq" aV(5) = "Num" : aV(7) = "Frq" aV(8) = "Num" : aV(10) = "Frq" aV(11) = "Num" : aV(13) = "Frq" aV(14) = "Num" : aV(16) = "Frq" aColSpan(1) = 1 For k = 2 To 14 Step 3 aColSpan(k) = 2 aColSpan(k + 1) = 0 aColSpan(k + 2) = 1 Next aColori(1) = vbBlack Call AddRigaTabella(aV,aColori,,,,,aColSpan) ' terza riga frequenza dei numeri aV(1) = "" aColSpan(1) = 1 i = 0 For k = 2 To 14 Step 3 i = i + 1 aV(k) = aN(i,1) aV(k + 1) = "" aV(k + 2) = aN(i,2) Next Call AddRigaTabella(aV,aColori,,4,aColoreFont,,aColSpan) ' quarta riga intestazione valori di dettaglio aV(1) = "IdRitardo" i = 0 For k = 2 To 14 Step 3 i = i + 1 aV(k) = "Ritardo" aV(k + 1) = "DiffColpi" aV(k + 2) = "Posizione" Next Call AddRigaTabella(aV,vbYellow) ' righe dei valori aColori(1) = vbYellow For k = 1 To UBound(aValori) For j = 1 To 16 aV(j) = aValori(k,j) Next Call AddRigaTabella(aV,aColori) Next Call CreaTabella End Sub End Class Sub Main Dim Fine Dim CollCinquine Dim nEstrPerCalcFrq Dim nClasse Dim nFrzPerRt nEstrPerCalcFrq = 104 Fine = EstrazioneFin ReDim aTabAnalitico(0) nClasse = ScegliDaMenu("Classe formazione" , 5) nFrzPerRt = ScegliDaMenu("Formazioni da rilevare per ruota" , 1) If nClasse > 0 And nFrzPerRt > 0 Then Call ScriviInformazioni(nEstrPerCalcFrq,nClasse,nFrzPerRt,Fine) Call AlimentaGrigliaEstr(aTabAnalitico,Fine) Call CreaTabAnalitico(aTabAnalitico) Call AlimentaCollCinquine(CollCinquine,aTabAnalitico,nFrzPerRt,nClasse) Call EseguiStatistica(CollCinquine,nEstrPerCalcFrq,Fine) If MsgBox ("Mostrare il tabellone analitico ?" , vbQuestion + vbYesNo )= vbYes Then Call CreaTabellone(aTabAnalitico,Fine) End If End If End Sub Sub ScriviInformazioni(nEstrPerCalcFrq,nClasse,nFrzPerRt,Fine) Dim s s = "La seguente statistica analizza per ogni ruota le " & nFrzPerRt s = s & " formazioni composte da " & nClasse & " numeri" & vbCrLf s = s & "dal ritardo piu alto che non si sono ancora sfaldate," s = s & " esaminando e fornendo i dati statistici per " & vbCrLf s = s & "i numeri che le compongono." & vbCrLf s = s & "Le formazioni vengono mostrate in ordine decrescente di ritardo." & vbCrLf s = s & "All'interno della tabella statistica i numeri sono disposti ordinati per frequenza decrescente." & vbCrLf Call Scrivi(String(150,"*"),True) Call Scrivi(s,True) Call Scrivi(String(150,"*"),True) Call Scrivi s = "Data di rilevamento Tabellone Analitico : " & GetInfoEstrazione(Fine) Call Scrivi(s,True) s = "Estrazioni esaminate per calcolo freqenza : " & nEstrPerCalcFrq Call Scrivi(s,True) s = "Ricerca formazioni di classe : " & nClasse Call Scrivi(s,True) Call Scrivi(String(150,"*"),True) Call Scrivi End Sub Sub CreaTabellone(aTabAnalitico,fine) Dim k,i,r ReDim aV(57) ReDim aColSpan(57) ReDim aColori(57) Dim idPrimaRiga,idEstr Dim nColor Call Messaggio("Output TabAnalitico in corso ...") i = 2 aColori(1) = RGB(255,255,192) aColori(2) = vbYellow For r = 1 To 11 For k = 1 To 5 i = i + 1 If r Mod 2 = 0 Then nColor = RGB(255,255,192) Else nColor = vbWhite End If aColori(i) = nColor Next Next aColSpan(1) = 57 aV(1) = "TABELLONE ANALITICO" Call InitTabella(aV,vbCyan,,6,,"Courier New",aColSpan) aV(1) = "" aV(2) = "" i = 0 For k = 3 To 56 Step 5 i = i + 1 aV(k) = NomeRuota(Iif(i = 11,12,i)) aColSpan(k) = 5 Next aColSpan(1) = 2 Call AddRigaTabella(aV,aColori,,,,"Courier New",aColSpan) aV(1) = " Data " aV(2) = " Rit " i = 2 For r = 1 To 11 For k = 1 To 5 i = i + 1 aV(i) = Format2(k) & "°" Next Next Call AddRigaTabella(aV,aColori,,,,"Courier New") idPrimaRiga = GetIdPrimaRigaTabAna(aTabAnalitico) For k = idPrimaRiga To UBound(aTabAnalitico) idEstr = fine -((UBound(aTabAnalitico) + 1) - k - 1) aV(1) = " " & DataEstrazione(idEstr) & " " aV(2) = UBound(aTabAnalitico) - k For i = 1 To 55 If aTabAnalitico(k,i) <> 0 Then aV(i + 2) = Format2(aTabAnalitico(k,i)) Else aV(i + 2) = " " End If Next Call AddRigaTabella(aV,aColori,,,,"Courier New") Next Call CreaTabella End Sub Function GetIdPrimaRigaTabAna(aTabAnalitico) Dim k,e For k = 1 To UBound(aTabAnalitico) For e = 1 To 55 If aTabAnalitico(k,e) <> 0 Then GetIdPrimaRigaTabAna = k Exit Function End If Next Next End Function Function ScegliDaMenu(sTitolo, idSelDef) Dim k ReDim aV(5) For k = 1 To 5 aV(k) = k Next k = ScegliOpzioneMenu(aV,idSelDef,sTitolo) If k > 0 Then ScegliDaMenu = aV(k) End If End Function Sub EseguiStatistica(CollCinquine,nEstrPerCalcFrq,Fine) Dim clsE Call OrdinaItemCollection(CollCinquine,"Ritardo") For Each clsE In CollCinquine Call clsE.CreaStatEstratti((Fine + 1) - nEstrPerCalcFrq,Fine) Next End Sub Sub AlimentaCollCinquine(CollCinquine,aTabAnalitico,QCinquinePerRuota,nClasse) Dim r,k,nPosIn,nPosFi Dim b,e,i Dim nTrovate Dim clsE Dim nPresenti Set CollCinquine = GetNewCollection For r = 1 To 11 Call Messaggio("Ricerca cinquine su " & NomeRuota(Iif(r = 11,12,r))) nPosIn =((r - 1)*5) + 1 nPosFi =(nPosIn - 1) + 5 nTrovate = 0 For k = 1 To UBound(aTabAnalitico) nPresenti = 0 For e = nPosIn To nPosFi If aTabAnalitico(k,e) <> 0 Then nPresenti = nPresenti + 1 End If Next If nPresenti = nClasse Then i = 0 Set clsE = New clsEstrazione clsE.ruota = Iif(r = 11,12,r) clsE.ritardo = UBound(aTabAnalitico) - k For e = nPosIn To nPosFi i = i + 1 Call clsE.SetNum(i,aTabAnalitico(k,e)) Next CollCinquine.Add clsE nTrovate = nTrovate + 1 If nTrovate = QCinquinePerRuota Then Exit For End If Next Call AvanzamentoElab(1,11,r) Next End Sub Function AlimentaGrigliaEstr(aTabAnalitico,Fine) Dim idEstr Dim Inizio Dim nTot Dim iPos,iEst,r,e Call Messaggio("Lettura estrazioni in corso") Inizio = Fine - 220 If Inizio < 0 Then Inizio = 0 nTot =(Fine + 1) - Inizio ReDim aTabAnalitico(nTot,55) For idEstr = Inizio To Fine iPos = 0 iEst = iEst + 1 For r = 1 To 12 If r <> 11 Then For e = 1 To 5 iPos = iPos + 1 aTabAnalitico(iEst,iPos) = Estratto(idEstr,r,e) Next End If Next Call AvanzamentoElab(Inizio,Fine,idEstr) Next End Function Sub CreaTabAnalitico(aTabAnalitico) Dim k,j,e,ee,r Dim iPos,nPosIn,nPosFi For r = 1 To 11 Call Messaggio("Creo analitico per " & NomeRuota(Iif(r = 11,12,r))) nPosIn =((r - 1)*5) + 1 nPosFi =(nPosIn - 1) + 5 For k = 2 To UBound(aTabAnalitico) For j = k - 1 To 1 Step - 1 For e = nPosIn To nPosFi For ee = nPosIn To nPosFi If aTabAnalitico(j,ee) = aTabAnalitico(k,e) Then aTabAnalitico(j,ee) = 0 Exit For End If Next Next Next Next Call AvanzamentoElab(1,11,r) Next End Sub
Vi chiedo un favore, siate gentili e pazienti, potreste mostrare qualche previsione nuova con una chiara spiegazione?
Grazie a chi si prodigherà e non smetterò mai di ringraziare Luigi
Buongiorno!,ammazza che sorpresa sig.Luigi complimenti davvero a lei e l'autore.
Volevo chiedere se queste ricerche si possono fare anche con le decine naturali e cosa potrei modificare nello script.
Grazie.
Ciao , grazie a tutti per gli apprezzamenti che avete fatto sullo script.
Per Antonio
Ineffetti questo tipo di ricerca trova i numeri da analizzare partendo da queli presenti nel tabellone analitico sulle varie ruote.
Le decine naturali sono delle formazioni quindi c'è una differenza proprio di fondo nel metodo per individuare i numeri da analizzare.Inoltre la previsione (sempre ragionando con l'ottica da giocatore ) perderebbe potenza perche verrebbe a mancare
l'aspetto che si stanno analizzando comunque N numeri sincroni cosa che non accadrebbe con le formazioni come le decine o altre. Si dovrebbero fare diverse modifiche , poi bisognerebbe vedere che genere di output si vuol e ottenre ,,,