Novità

Spaziometria - ritardi di rigo

Joe91

Advanced Member >PLATINUM PLUS<
Ciao Luigi.

Grazie.

Ho cercato di semplificare il più possibile ...

sperando di non aver fatto pasticci.

Codice:
Option Explicit
Sub Main
'PresenzeTeoriche By Joe
	Dim Ritardo,Estrazioni
	Estrazioni = 5249 'Valide
	Scrivi "Rit.  Pres.Teor.",True
	For Ritardo = 1 To 250 'Ritardo
		Scrivi FormatSpace(Ritardo - 1,3,True),0,0
		Scrivi FormatSpace(PresenzeTeoriche(Ritardo,Estrazioni),10,True)
	Next
End Sub
Function PresenzeTeoriche(Ritardo,Estrazioni)
	Dim P,Q
	Dim Att,Pre
	P = 5 ' Estratti
	Q = 17/18 ' Probabilità Contraria
	Att = 1 - Q^Ritardo 'Attuale
	Pre = 1 - Q^(Ritardo - 1)'Precedente
	PresenzeTeoriche = Round(P*Estrazioni*(Att - Pre))
End Function

:)
 
Ultima modifica:
L

LuigiB

Guest
in quest'ottica joe la quantita reale dovrebeb essere la frequenza riscontrata o sbaglio ?
 
L

LuigiB

Guest
poi c'era una cosa che volevo chiederti a proposito di questa formula.
Se le estrazioni analizzate per ipotesi fossero solo 1 perche le presenze teoriche alle varie righe indicano 0 ? C'è qualcosa che nmon mi è chiaro ..
 

Joe91

Advanced Member >PLATINUM PLUS<
No Title

LuigiB;n1997092 ha scritto:
poi c'era una cosa che volevo chiederti a proposito di questa formula.
Se le estrazioni analizzate per ipotesi fossero solo 1 perche le presenze teoriche alle varie righe indicano 0 ? C'è qualcosa che nmon mi è chiaro ..


Ho arrotondato

del resto numeri con molti decimali ...diventano illegibili.

togliendo l'arrotondamento si ottiene:

Rit. Pres.Teor.
0 0,277777777777778
1 0,262345679012346
2 0,247770919067216
3 0,234005868007925
4 0,221005542007486
5 0,208727456340402

Mentre da un lato non sono sicurissimo ... rilevo ... che funziona molto meglio.

Poi ... è statistica mica può garantire la vincita ... per questo ci sono i ciarlatani.

Seriamente: Cerco di controllare meglio.

L' utilità di un confronto si ottiene tra la colonna 4 frequenza già presente e quella Teorica.

con un eventuale ulteriore evidenziazione degli scostamenti.

:) Buona serata
 

Allegati

  • photo13457.jpg
    photo13457.jpg
    63,2 KB · Visite: 5
L

LuigiB

Guest
Ciao Joe , nel seguente script ho implementato anche la tua formula i valori compaiono nelle ultime 3 colonne , la mia era una domanda solo per capire perche mi aspettavo che mettendo una sola estrazione al ritardo 0 (ritardo 1) dovesse dare 5 estratti teorici ..
Comunquue sia vedi se l'ho implementata bene , nota che quando passo il ritardo in realta prima di passarlo lo incremento di 1 penso sia giusto cosi riferendomi al tuo esempio ..fammi sapere...anche di eventuali akltre modifiche


Codice:
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq,cMaxRigo
Sub Main
    Dim Ini,Fin
    Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri
    Dim aBRuote
    ReDim aRt(1)
    ReDim aNumRuota(5)
    Dim aBNumRuota
    Dim T
    If MsgBox("Mostrare solo le righe  alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
        bMostraSoloRigheConNumeri = True
    End If
    Call ScegliRuote(Nothing,aBRuote)
    cMaxRigo = 250
    cIdRit = 0
    cIdRitMax = 1
    cIdFreq = 2
    T = Timer
    ReDim aRitPerRigo(cMaxRigo,12,2)
    Ini = EstrazioneIni
    Fin = EstrazioneFin
    For r = 1 To 12
        If r <> 11 Then
            If aBRuote(r) Then
                ReDim aN(90)
                aRt(1) = r
                Call GetRitardoEstratti(aRt,Ini,aN)
                For k = Ini + 1 To Fin
                    Call GetArrayNumeriRuota(k,r,aNumRuota)
                    If aNumRuota(1) > 0 Then
                        For nRit = 0 To cMaxRigo
                            aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
                        Next
                        For e = 1 To 5
                            nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
                            If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
                                aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
                            End If
                            aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
                            aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
                        Next
                        aBNumRuota = ArrayNumeriToBool(aNumRuota)
                        For n = 1 To 90
                            If aBNumRuota(n) Then
                                aN(n) = 0
                            Else
                                aN(n) = aN(n) + 1
                            End If
                        Next
                    End If
                Next
            End If
        End If
        Call AvanzamentoElab(1,12,r)
    Next
    Scrivi "Tempo Elab : " & Timer - T
    
    T = Timer
    Call GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,aBRuote,aRitPerRigo)
    Scrivi "Tempo crea tabella : " & Timer - T

End Sub
Sub GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,abRuote,aRitPerRigo)
    Dim r,k,e,n,sNum,bValida,qNum,nFatte,qRuote
    nFatte = Fin -(Ini)
    ReDim aV(18)
    aV(1) = "Rigo"
    aV(2) = "Ritardo"
    aV(3) = "RitardoMax"
    aV(4) = "Frequenza"
    aV(5) = "Ru"
    aV(6) = "Numeri"
    aV(7) = "IC"
    aV(8) = "QR"
    aV(9) = "QT"
    aV(10) = "QR-QT"
    aV(11) = "A"
    aV(12) = "QRRu"
    aV(13) = "QTRu"
    aV(14) = "QRRu -QTRu"
    aV(15) = "ARu"
    aV(16) = "PT"
    aV(17) = "Freq-PT"
    aV(18) = "A"
    



    ReDim aPresTotPerRigo(cMaxRigo)
    Call GeneraAnaliticoTurbo(Fin)
    For r = 1 To 12
        If abRuote(r) Then qRuote = qRuote + 1
    Next
    For k = 0 To cMaxRigo
        For r = 1 To 12
            If abRuote(r) Then
                If r <> 11 Then
                    For e = 1 To 5
                        n = TabelloneAnaliticoTurbo(k,r,e)
                        If n > 0 Then
                            aPresTotPerRigo(k) = aPresTotPerRigo(k) + 1
                        End If
                    Next
                End If
            End If
        Next
    Next
    Messaggio "Creazione tabella"
    DoEventsEx
    Call InitTabella(aV)
    For r = 1 To 12
        If r <> 11 And abRuote(r) Then
            For k = 0 To cMaxRigo
                aV(1) = k
                aV(2) = aRitPerRigo(k,r,cIdRit)
                aV(3) = aRitPerRigo(k,r,cIdRitMax)
                aV(4) = aRitPerRigo(k,r,cIdFreq)
                aV(5) = NomeRuota(r)
                sNum = ""
                qNum = 0
                For e = 1 To 5
                    n = TabelloneAnaliticoTurbo(k,r,e)
                    If n > 0 Then
                        qNum = qNum + 1
                        sNum = sNum & n & "."
                    End If
                Next
                sNum = RimuoviLastChr(sNum,".")
                bValida = False
                If bMostraSoloRigheConNumeri Then
                    If sNum <> "" Then bValida = True
                Else
                    bValida = True
                End If
                If bValida Then
                    aV(6) = sNum
                    aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
                    aV(8) = qNum
                    aV(9) = Round(GetPresTeo(k ,1),3)
                    aV(10) =  Round (qNum -aV(9),3)
                    aV(11) = Round(Dividi(qNum,(qNum + CDbl(aV(9)))),3)
                    
                    aV(12) = aPresTotPerRigo(k)
                    aV(13) = Round(GetPresTeo(k , qRuote),3)
                    aV(14) =  Round (aPresTotPerRigo(k)-aV(13),3)
                    aV(15) = Round(Dividi(aPresTotPerRigo(k),(aPresTotPerRigo(k) + CDbl(aV(13)))),3)
                    aV(16) = Round(PresenzeTeoriche ( k+1 ,nFatte ,1),3)
                    aV(17) = Round( aRitPerRigo(k,r,cIdFreq) - aV(16) ,3)
                    aV(18) = Round(Dividi(aRitPerRigo(k,r,cIdFreq),(aRitPerRigo(k,r,cIdFreq) + CDbl(aV(16)))),3)
                    
                    

                    
                    
                    Call AddRigaTabella(aV)
                End If
            Next
        End If
    Next
    Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
    Call Scrivi("Fine   : " & GetInfoEstrazione(Fin))
    Call SetTableWidth("100%")
    Call CreaTabellaOrdinabile(2)
End Sub
Function GetPresTeo(Rit,qRuote)
    GetPresTeo = 5* qRuote *(17/18)^Rit
End Function
Function PresenzeTeoriche(Ritardo,Estrazioni ,Ruote)
    ' funzione by Joe
    Dim P,Q
    Dim Att,Pre
    P = 5 * Ruote ' Estratti
    Q = 17/18 ' Probabilità Contraria
    Att = 1 - Q^Ritardo 'Attuale
    Pre = 1 - Q^(Ritardo - 1)'Precedente
    PresenzeTeoriche =  (P*Estrazioni*(Att - Pre))
End Function
 

Joe91

Advanced Member >PLATINUM PLUS<
LuigiB;n1997100 ha scritto:
Ciao Joe ,

la mia era una domanda solo per capire perche mi aspettavo che mettendo una sola estrazione

al ritardo 0 (ritardo 1) dovesse dare 5 estratti teorici ..

La tua riflessione mi suggerisce la risposta.

No. E' ad un altro livello.

Le presenze (di colonna 4) sono risultati di numeri "teoricamente" giocati.

Quindi se giochi i 5 numeri (o la cinquina sincrona) a ritardo zero ...

PURTROPPO non ottieni 5 estratti.

Però teoricamente ognuno si essi ha una probabilità su 18 di essere estratto.

Cioè ... 5 su 18 che con la calcolatrice è = 0.2777.......77778

che è lo stesso valore restituituito dalla formula per il ritardo zero

senza gli arrotondamenti, come ho elencato al messaggio #64.

Quindi ... è ulteriore conferma.

Per il controllo dello script ... rimando a domattina.

:) Buona Serata a tutte/i.
 

i legend

Premium Member
Ciao a tutti :)
Un saluto ai prof luigi e joe
Forse parlate di due statistiche distinte.
Non so se entrambe le formule siano corrette.
Penso che a Ritardo zero empiricamente oltre che teoricamente ci saranno 5 estratti. 5 posizioni occupate.

Ora chiedo a luigi se usando la sua funzione di potesse calcolare la presenza teorica fra il ritardo 0-17.
Sono curioso di capire quante sarebbero le presenze teoriche.
Poi vi spiego anche perché . Ciao notte a tutti :)
 

Joe91

Advanced Member >PLATINUM PLUS<
Ciao I legend.

Si è giusto quello che scrivi.

Sono statistiche diverse anche se hanno caratteri comuni.

Sono estratti (a ritardo zero) 5 numeri dei 90 presenti nell'urna.

Questi 5 sono sul Tabellone Analitico. (a ritardo zero).

Ora questo calcolo successivo riguarda questi 5 ...

che sono una piccola parte di 90.

Ma a ritardo più elevato ...

sul Tabellone Analitico sono meno ancora di 5.

:)
 

Joe91

Advanced Member >PLATINUM PLUS<
No Title

Ciao Luigi ...

Lo script considera una estrazione in meno rispetto ai limiti, che elenca nella prima parte.

Cioè prima della tabella.

Pertanto il numero delle estrazioni 5248 invece di 5249

dal 03/09/1945 al 11/08/2016 fa si che il numero degli estratti,

risultante sia inferiore di 5 estratti.

Questo conteggio differente dal "quanto" dovrebbe essere,

poi si riflette (negativamente) sui risultati finali ...

che diversamente sarebbero "giusti".

:)
 

Allegati

  • photo13458.jpg
    photo13458.jpg
    60,1 KB · Visite: 5
L

LuigiB

Guest
Ciao Joe grazie della spiegazione e del controllo. Per fare la correzione bisogna agire nella sub gestioneoutput e modificare il calcolo per la variabile nfatte a questo punto sommando 1. Dato che sono in ufficio se puoi fare tu la correzione e riportare lo script sul forum ...senno lp faro io stasera.. ciao
 

Joe91

Advanced Member >PLATINUM PLUS<
LuigiB;n1997212 ha scritto:
Ciao Joe grazie della spiegazione e del controllo. Per fare la correzione bisogna agire nella sub gestioneoutput e modificare il calcolo per la variabile nfatte a questo punto sommando 1. Dato che sono in ufficio se puoi fare tu la correzione e riportare lo script sul forum ...senno lp faro io stasera.. ciao


Ciao Luigi.

Anche su questo mi permetto di dissentire.

E' un errore più subdolo e riguarda i conteggi, non l'output.

Infatti il calcolo è fatto sull'iterazone

For k = Ini + 1 To Fin

E' questo "+1" che sotttrae una estrazione dal totale di quante dovrebbero essere.

Anch'io devo verificare meglio "cosa cambia" ... e perchè tu abbia impostato lo script così.

Anche se è evidente che volevi affrancarti da un "-1" in cui non c'erano estratti.

:)
 
L

LuigiB

Guest
No no...quel +1 dipende dalla logica dello script .all estrazione ini calcola i ritardi dei 90 numeri da ini +1 in poi invece i ritardi dei 90 numeri li aggiorna...
 

Joe91

Advanced Member >PLATINUM PLUS<
Ciao Luigi.

E' come dire che non mi hai convinto.

Ma non è colpa tua ... so d'essere cocciuto.

Ho preso il tuo script e vi ho apportato poche modifiche ...

e, per poter evidenziare alcune cose, l'ho "bloccato" ad alcune condizioni.

Eseguendolo vedi come esso calcoli un tabellone analitico ... ma poi,

elenca ma non conteggia gli estratti di queste prime estrazioni.

Con l'altro programma a paragone, come il tuo Tabellone Analitico (di Spaziometria)

ed è più facile vedere aggiunti 5 estratti alla prima estrazione,

5 alla seconda ... e così via man mano decrescendo (perchè aggiorna a run-time)

Qui si dovrà spostare il limite dell' archivio, di una estrazione alla volta ...

(Fin = 3950 / 3951 / 3952 / 3953 3954 ...)

per verificare che per le prime estrazioni ...

non sono conteggiati presenti gli estratti che in esse (ed in ogni caso) sono caduti.

Dunque secondo me è un errore.

Ho anche estratto e riscritto un piccolo script con la parte principale di ciò che avevo fatto.

Esso si muove più similmente a quanto detto ed

elenca per la ruota di Firenze dopo le prime 5 estrazioni:

Firenze 3950_3954

R Rit Fr.
0 0 6
1 3 5
2 2 5
3 1 5
4 0 4

....

Un secondo test lo puoi fare così:

* esegui lo script originale ... SENZA questi vincoli. (altrimenti evidentemente ottieni Zero... Meglio, Uno)

* trasferiscri l'output in excel.

* In Excel esegui la somma delle Presenze (Frequenze) elencate in colonna 4.

Essendo estratti 5 numeri in ogni estrazione ... dividi questo Totale Presenze per 5,

ed ottieni il numero delle Estrazioni conteggiate.

Rileverai che sono "meno" estrazioni di quante dovrebbero essere.

Mentre come vedi per contro nella tabellina sopra 6 + 5 + 5 + 5 + 4 = 25

25 / 5 = 5 Estrazioni.

:) In attesa di un tuo riscontro ... porgo cordiali saluti a tutte/i.

Codice:
Option Explicit
Dim cIdRit,cIdRitMax,cIdFreq,cMaxRigo
Sub Main
    Dim Ini,Fin
    Dim r,k,e,n,nRit,nSfald,bMostraSoloRigheConNumeri
    Dim aBRuote(12)  
    ReDim aRt(1)
    ReDim aNumRuota(5)
    Dim aBNumRuota
    Dim T
    'If MsgBox("Mostrare solo le righe  alla cui posizione nel tab analitico sono effettivamente presenti dei numeri ?",vbQuestion + vbYesNo) = vbYes Then
        bMostraSoloRigheConNumeri = False
    'End If
    'Call ScegliRuote (Nothing,aBRuote)
    aBRuote(3) = True 
    cMaxRigo = 250
    cIdRit = 0
    cIdRitMax = 1
    cIdFreq = 2
    T = Timer
    ReDim aRitPerRigo(cMaxRigo,12,2)
    Ini = 3950 'EstrazioneIni
    Fin = 3954 'EstrazioneFin
    For r = 1 To 12
        If r <> 11 Then
            If aBRuote(r) Then
                ReDim aN(90)
                aRt(1) = r
                Call GetRitardoEstratti(aRt,Ini,aN)
                For k = Ini + 1 To Fin
                    Call GetArrayNumeriRuota(k,r,aNumRuota)
                    If aNumRuota(1) > 0 Then
                        For nRit = 0 To cMaxRigo
                            aRitPerRigo(nRit,r,cIdRit) = aRitPerRigo(nRit,r,cIdRit) + 1
                        Next
                        For e = 1 To 5
                            nRit =(aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) - 1)
                            If nRit > aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) Then
                                aRitPerRigo(aN(aNumRuota(e)),r,cIdRitMax) = nRit
                            End If
                            aRitPerRigo(aN(aNumRuota(e)),r,cIdRit) = 0
                            aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) = aRitPerRigo(aN(aNumRuota(e)),r,cIdFreq) + 1
                        Next
                        aBNumRuota = ArrayNumeriToBool(aNumRuota)
                        For n = 1 To 90
                            If aBNumRuota(n) Then
                                aN(n) = 0
                            Else
                                aN(n) = aN(n) + 1
                            End If
                        Next
                    End If
                Next
            End If
        End If
        Call AvanzamentoElab(1,12,r)
    Next
    Scrivi "Tempo Elab : " & Timer - T
    
    T = Timer
    Call GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,aBRuote,aRitPerRigo)
    Scrivi "Tempo crea tabella : " & Timer - T

End Sub
Sub GestioneOutput(Ini,Fin,bMostraSoloRigheConNumeri,abRuote,aRitPerRigo)
    Dim r,k,e,n,sNum,bValida,qNum,nFatte,qRuote
    nFatte = Fin -(Ini)
    ReDim aV(18)
    aV(1) = "Rigo"
    aV(2) = "Ritardo"
    aV(3) = "RitardoMax"
    aV(4) = "Frequenza"
    aV(5) = "Ru"
    aV(6) = "Numeri"
    aV(7) = "IC"
    aV(8) = "QR"
    aV(9) = "QT"
    aV(10) = "QR-QT"
    aV(11) = "A"
    aV(12) = "QRRu"
    aV(13) = "QTRu"
    aV(14) = "QRRu -QTRu"
    aV(15) = "ARu"
    aV(16) = "PT"
    aV(17) = "Freq-PT"
    aV(18) = "A"
    



    ReDim aPresTotPerRigo(cMaxRigo)
    Call GeneraAnaliticoTurbo(Fin)
    For r = 1 To 12
        If abRuote(r) Then qRuote = qRuote + 1
    Next
    For k = 0 To cMaxRigo
        For r = 1 To 12
            If abRuote(r) Then
                If r <> 11 Then
                    For e = 1 To 5
                        n = TabelloneAnaliticoTurbo(k,r,e)
                        If n > 0 Then
                            aPresTotPerRigo(k) = aPresTotPerRigo(k) + 1
                        End If
                    Next
                End If
            End If
        Next
    Next
    Messaggio "Creazione tabella"
    DoEventsEx
    Call InitTabella(aV)
    For r = 1 To 12
        If r <> 11 And abRuote(r) Then
            For k = 0 To cMaxRigo
                aV(1) = k
                aV(2) = aRitPerRigo(k,r,cIdRit)
                aV(3) = aRitPerRigo(k,r,cIdRitMax)
                aV(4) = aRitPerRigo(k,r,cIdFreq)
                aV(5) = NomeRuota(r)
                sNum = ""
                qNum = 0
                For e = 1 To 5
                    n = TabelloneAnaliticoTurbo(k,r,e)
                    If n > 0 Then
                        qNum = qNum + 1
                        sNum = sNum & n & "."
                    End If
                Next
                sNum = RimuoviLastChr(sNum,".")
                bValida = False
                If bMostraSoloRigheConNumeri Then
                    If sNum <> "" Then bValida = True
                Else
                    bValida = True
                End If
                If bValida Then
                    aV(6) = sNum
                    aV(7) = Round(Dividi(aRitPerRigo(k,r,cIdRit),Dividi(nFatte,aRitPerRigo(k,r,cIdFreq))),3)
                    aV(8) = qNum
                    aV(9) = Round(GetPresTeo(k ,1),3)
                    aV(10) =  Round (qNum -aV(9),3)
                    aV(11) = Round(Dividi(qNum,(qNum + CDbl(aV(9)))),3)
                    
                    aV(12) = aPresTotPerRigo(k)
                    aV(13) = Round(GetPresTeo(k , qRuote),3)
                    aV(14) =  Round (aPresTotPerRigo(k)-aV(13),3)
                    aV(15) = Round(Dividi(aPresTotPerRigo(k),(aPresTotPerRigo(k) + CDbl(aV(13)))),3)
                    aV(16) = Round(PresenzeTeoriche ( k+1 ,nFatte ,1),3)
                    aV(17) = Round( aRitPerRigo(k,r,cIdFreq) - aV(16) ,3)
                    aV(18) = Round(Dividi(aRitPerRigo(k,r,cIdFreq),(aRitPerRigo(k,r,cIdFreq) + CDbl(aV(16)))),3)
                    
                    

                    
                    
                    Call AddRigaTabella(aV)
                End If
            Next
        End If
    Next
    Call Scrivi("Inizio : " & GetInfoEstrazione(Ini))
    Call Scrivi("Fine   : " & GetInfoEstrazione(Fin))
    Call SetTableWidth("100%")
    Call CreaTabellaOrdinabile(1,1)
End Sub
Function GetPresTeo(Rit,qRuote)
    GetPresTeo = 5* qRuote *(17/18)^Rit
End Function
Function PresenzeTeoriche(Ritardo,Estrazioni ,Ruote)
    ' funzione by Joe
    Dim P,Q
    Dim Att,Pre
    P = 5 * Ruote ' Estratti
    Q = 17/18 ' Probabilità Contraria
    Att = 1 - Q^Ritardo 'Attuale
    Pre = 1 - Q^(Ritardo - 1)'Precedente
    PresenzeTeoriche =  Round(P*Estrazioni*(Att - Pre))
End Function
 
L

LuigiB

Guest
Ciao Joe ora qui dal cell non possa cobtrolkare pero sai bene che ho assoluta fiducia del tuo operato. Hai le competenxe lottologiche e sei in grado di leggere e capire i miei script .
Lo script ha la sua struttura e la sua logica per cercare di renderlo il piu veloce possibile se hai fatto le correzioni necessarie fino a renderlo esatto direi che siamo apposto...stasera comunque vedo anche io...ciao
 

Joe91

Advanced Member >PLATINUM PLUS<
Ciao Luigi. Non è ... proprio così.

Tu sai essere più preparato e veloce (ed anche giovane mentalmente) di me,

quindi, ho una soluzione mia ... ma è molto differente dal tuo script.

Una crasi, di queste diverse espressioni, non la vedo semplice.

Specie per me, che dovrei farmi carico del tuo script molto più difficile.

Comunque sia, NON ho corretto il tuo script.

Ho cercato di renderlo capace di rendere più evidenti alcune sue criticità.

(Per la verità, non ho neanche cercato di capirlo e studiarlo.)

Dicevo che "ibridare" le soluzioni che abbiamo realizzato è un pochino difficile,

soprattutto per me perchè essi sono molto differenti.

E' nache vero poi ... che anche il mio lavoro ha avuto bisogno di molte correzioni in corso d'opera.

Quindi il "mio complessivo" ... è funzionante ma ha errori, manca dello storico ...

ed in sintesi anch'eeso si fa prima a buttarlo ... che correggerlo.

Dunque la mia proposta è questa:

Ti invierei questo mio script nuovo e funzionante che ti è facilissimo da leggere

ed anche da capire perchè è sia piccolo che molto semplice.

Cosicchè puoi provare ad interfacciarlo con la tue ruotine di input e di output

utilizzando ... se ritieni i suoi calcoli ed i risultati necessari a completare in modo corretto la tabella.

Oppure alla peggio ti potà essere utile riferimento.

:) Cordiali saluti.

Codice:
Sub Main
Dim T
Dim Ini,Fin,Es
Dim R,E,P
Dim N,X
T = Timer
Dim K,KK 'Controllo Crociato
Ini = 3950 : Fin = EstrazioneFin
For R = FI_ To FI_ : If R = 11 Then R = 12 : Ini = 7440
K = 0 : KK = 0
ReDim RE(90),RR(250),PR(250),STO(250)
Messaggio NomeRuota(R)
AvanzamentoElab 1,12,R
Scrivi NomeRuota (R),True
For N = 1 To 90 : RE(N) = - 1 : Next 'Inizializzazione
For Es = Ini To Fin
K = K + 1
AvanzamentoElab Ini,Fin,Es
For N = 1 To 90  : RE(N) = RE(N) + 1 : Next 'Ritardo Estratti
For N = 0 To 250 : RR(N) = RR(N) + 1 : Next 'Ritardo di Rigo
For P = 1 To 5
E = Estratto(Es,R,P)
If STO(RE(E)) < RR(RE(E)) Then STO(RE(E)) = RR(RE(E)) - 1
RR(RE(E)) = 0 : PR(RE(E)) = PR(RE(E)) + 1
RE(E) = - 1
Next
Next
Scrivi "Rigo    Rit     Sto     Pres.   Teor.",True
For N = 0 To 250
If RR(N) <> RR(250) Then
X = PresenzeTeoriche(N+1, Fin-Ini+1)
Scrivi FormatSpace(N,4) & Chr(9) & RR(N) & Chr(9) & STO(N) & Chr(9) & PR(N) & Chr(9) & X
KK = KK + PR(N)
End If
Next
If K = KK / 5 Then Scrivi : Scrivi "Script By Joe",True
Scrivi
Next
Scrivi Round(Timer - T,1) & " sec."
End Sub
Function PresenzeTeoriche(Ritardo,Estrazioni)
Dim P,Q
Dim Att,Pre
P = 5 ' Estratti
Q = 17/18 ' Probabilità Contraria
Att = 1 - Q^Ritardo 'Attuale
Pre = 1 - Q^(Ritardo - 1)'Precedente
PresenzeTeoriche = Round(P*Estrazioni*(Att - Pre))
End Function
 
Ultima modifica:
L

LuigiB

Guest
Ok Joe , lo guardero e cerchero di capire .. prima di vedere il tuo script per non essere influenzato
vorrei inquadrare meglio "l'errore" presente nel mio.
Quindi ti chiedo conferma. Il mio script calcola male la quantita di estrazioni analizzate ? Solo quello ?
Da notare che questo mio ultimo script da risultati coincidenti con quelli che avevo postato in precedenza ..
 

Joe91

Advanced Member >PLATINUM PLUS<
Ciao Luigi.

Principalmente ... riguarda il conteggio delle presenze.

Ho già provato a descrivere questa cosa al messaggio 74.

Li c'è anche una versione modificata del tuo script per evidenziare ...

come nella prima parte ed all'inizio del periodo analizzato,

NON elenca e NON conta i numeri presenti in queste prime estrazioni.

Se comunque posso essere utile ... con ulteriori esempi,

provo a spiegarmi diversamente.

:) Buona serata a tutte/i.
 

piermarco

Junior Member
CIAO A TUTTI SONO NUOVO DEL FORUM ED E LA PRIMA VOLTA CHE SCRIVO VORREI CHIEDERVII CHE HO SCARICATO IL PROG SPAZIOM. 1.5.86 E MI SUCCEDE CHE QUANDO APRO LA FINESTRA PER LO SCRIPTS MI DICE IL PULSANTE E GIA ESISTENTE CHE DEVO FARE GRAZIE
 
Piermarco, la sezione, o meglio, la discussione Programma Spaziometria la trovi uscendo da qui poi, sempre nella sezione Download, vai a pagina 2 e li, al momento, è presente Programma Spaziometria...
 

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 18 aprile 2024
    Bari
    13
    39
    14
    70
    78
    Cagliari
    67
    65
    03
    87
    63
    Firenze
    85
    90
    19
    67
    78
    Genova
    60
    81
    39
    33
    13
    Milano
    90
    01
    83
    11
    88
    Napoli
    18
    12
    80
    29
    19
    Palermo
    50
    83
    40
    24
    12
    Roma
    74
    48
    75
    65
    37
    Torino
    80
    46
    44
    27
    30
    Venezia
    70
    16
    72
    03
    89
    Nazionale
    89
    22
    06
    87
    13
    Estrazione Simbolotto
    Genova
    28
    21
    43
    25
    17
Alto