L
LuigiB
Guest
ciao Surmang un saluto anche da me ..
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.
Option Explicit
Sub Main
ReDim aN(1)
ReDim aRuote(1)
ReDim aRit(0)
ReDim aRetIdEstr(0)
aN(1) = 45
aRuote(1) = BA_
Call ElencoRitardi(aN,aRuote,1,EstrazioneFin - 999,EstrazioneFin,aRit,aRetIdEstr)
MsgBox CalcolaDevianaza(aRit)
End Sub
Function CalcolaDevianaza(aRitardi())
Dim k
Dim nMedia,nElementi,nDevianza
For k = 1 To UBound(aRitardi)
nElementi = nElementi + 1
nMedia = nMedia + aRitardi(k)
Next
nMedia = nMedia / nElementi
For k = 1 To UBound(aRitardi)
nDevianza = nDevianza +((nMedia - aRitardi(k)) ^ 2)
Next
CalcolaDevianaza = Sqr(nDevianza)
End Function
ciao surmang benvenuto
ti faccio i complimenti per lo script,
da profano penso che le funzioni siano corrette , la lettura dei dati che volevo dare io è leggermente diversa dalla tua.
tu il calcolo lo esegui su ogni riga , io invece pensavo di calcolare su tutto il range.Sull'utilità i dubbi vengono anche a me.
E' meglio puntare sulle frequenze o sui ritardi? la deviazione già di suo può dare diverse indicazioni, ma su grandi quantità di dati.
Comunque ancora complimenti, ed un grazie al grande Mike che mi sta aiutando tantissimo
Cordiali saluti
I Legend
Bari -> Numero :1 [INI 8354->8893 FIN] n∞ESTR :540
................................................................................
n∞ idEs Rit sRit
................................................................................
01 8363 09 10
02 8364 00 11
03 8373 08 20
04 8380 06 27
05 8392 11 39
06 8414 21 61
07 8426 11 73
08 8469 42 116
09 8499 29 146
10 8508 08 155
11 8519 10 166
12 8534 14 181
13 8567 32 214
14 8596 28 243
15 8599 02 246
16 8648 48 295
17 8669 20 316
18 8686 16 333
19 8705 18 352
20 8706 00 353
21 8725 18 372
22 8732 06 379
23 8747 14 394
24 8751 03 398
25 8769 17 416
26 8807 37 454
27 8828 20 475
28 8851 22 498
29 8879 27 526
30 8893 14
--------------------------------------------------------------------------------
NUMEROSITA = 29
MEDIA = 18.1
DEVIANZA = 4272
VARIANZA = 153
DEVIAZIONE = 12.35
--------------------------------------------------------------------------------
[CODE]
Buona continuazione!
Rinnovo i saluti a tutti gli amici del forum.
:)
'Option Explicit
Sub Main
Dim k,s,kk
Dim nClasse,nColonneTot
Dim aNumeri
Dim aCol
Dim Inizio,Fine
Dim nRuoteSel
Dim nSorte
Dim nCicloTeo
Dim nEstrTot
Dim sRuote
Inizio = EstrazioneFin - 300
Fine = EstrazioneFin
nEstrTot =(Fine + 1) - Inizio
ReDim aRuote(0)
nRuoteSel = ScegliRuote(aRuote)
nClasse = Scegliclasse
nSorte = ScegliEsito
If nSorte > nClasse Then MsgBox "La sorte non può essere maggiore della classe"
If nClasse > 0 And nRuoteSel > 0 And nSorte <= nClasse Then
aNumeri = GetNumPerSviluppo
nCicloTeo = CicloTeorico(nClasse,nSorte,Int(nRuoteSel))
sRuote = GetRuote(aRuote)
'inizializza lo sviluppo
nColonneTot = InitSviluppoIntegrale(aNumeri,nClasse)
k = 0
' ciclo che continua fino a quando le colonne non finiscono
Do While GetCombSviluppo(aCol)
k = k + 1 ' conteggio colonna corrente
ReDim aRetRitardi(0)
ReDim aRetIdEstr(0)
Call ElencoRitardiTurbo(aCol,aRuote,nSorte,Inizio,Fine,aRetRitardi,aRetIdEstr)
Call DisegnaGraficoRit(StringaNumeri(aCol),nSorte,nCicloTeo,nEstrTot,sRuote,aRetRitardi)
If k Mod 10 = 0 Then
Call Messaggio("Colonna n° " & k)
Call AvanzamentoElab(1,nColonneTot,k)
If ScriptInterrotto Then Exit Do
End If
Loop
End If
End Sub
Sub DisegnaGraficoRit(sNumeri,nSorte,nCicloTeo,nEstrTot,sRuote,aRitardi)
Dim nMin,nMax
Dim k
Dim nTot
Dim nFreqT
Const nSezioniGraf = 15
nTot = UBound(aRitardi)
ReDim aValori(nTot,2)
nMin = 10000000
nMax = - 10000000
For k = 0 To nTot
aValori(k,1) = k
If k = 0 Then
aValori(k,2) = 0
Else
aValori(k,2) = aRitardi(k)
If aRitardi(k) < nMin Then
nMin = aRitardi(k)
End If
If aRitardi(k) > nMax Then
nMax = aRitardi(k)
End If
End If
Next
'Call GetValoriMinMax(aRitardi,nMin,nMax)
Call PreparaGrafico("",0,nTot,0,nMax,GetStepX(nTot,nSezioniGraf),18)
Call DisegnaLineaGrafico(aValori,vbBlue)
nFreqT = Round(Dividi(nEstrTot,nCicloTeo),3)
Scrivi String(120,"=")
Scrivi "Combinazione : " & sNumeri & " per " & NomeSorte(nSorte) & " su " & sRuote,1
Scrivi "Ritardo minimo : " & nMin
Scrivi "Ritardo max : " & nMax
Scrivi "Frequenza : " & nTot
Scrivi "Freq. Teorica : " & nFreqT
Scrivi "Perc RapportoFreq : " & Round(ProporzioneX(nTot,nFreqT,100),3) & " %"
Scrivi "Ultimi 10 ritardi : " & GetUltimiRit(aRitardi,10,kk)
Call InserisciGrafico
Scrivi String(120,"=")
End Sub
Function GetStepX(nTot,nSezioni)
Dim t
t = Round(Dividi(nTot,nSezioni),0)
If t <= 1 Then t = 1
GetStepX = t
End Function
Function Scegliclasse
Dim k
ReDim aV(5)
For k = 1 To 5
aV(k) = k
Next
Scegliclasse = ScegliOpzioneMenu(aV,1,"Scegli classe di sviluppo")
End Function
Function GetRuote(aRuote)
Dim s
Dim k
For k = 1 To UBound(aRuote)
s = s & SiglaRuota(aRuote(k)) & "."
Next
GetRuote = Left(s,Len(s) - 1)
End Function
Function GetUltimiRit(aRitardi,n,kk)
Dim i
Dim k
Dim s
'Dim kk
kk = 0
i =(UBound(aRitardi) + 1) - n
If i <= 0 Then i = 1
For k = i To UBound(aRitardi)
s = s & aRitardi(k) & ","
If aRitardi(k) > 18 Then
kk = kk + 1
End If
Next
If s <> "" Then
GetUltimiRit = Left(s,Len(s) - 1)
Else
GetUltimiRit = ""
End If
If kk > 0 Then
Scrivi kk & " Cicli out ",1,0,2,4,3
Scrivi " **** Numero in esame !!!! NON ATTENDIBILE !!!!! ***** ",1,1,4,2,3
End If
If kk = 0 Then
Scrivi kk & " Cicli out ",1,0,4,2,3
Scrivi " **** Numero in esame !!!! ATTENDIBILE !!!!! ***** ",1,1,3,1,3
End If
End Function
Condizione di ricerca:
BA1>=45
BA3<=45
Seguenza estratti:PDPDD quindi BA1=Pari , BA2=Dispari ,BA3=Pari,BA4=Dispari,BA5=Dispari
Somma dei 5 estratti di BARI >=255