LottoGAM Forum

Script Pentambi più ritardati su ruota fissa

« Older   Newer »
  Share  
view post Posted on 17/12/2023, 19:29
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Ciao Claudio,
grazie per l'approfondimento dettagliato. La mia domanda era molto più semplice, legata agli storici.

I primi 5 ambi su Torino sono prossimi alle 200 estrazioni. Quali i precedenti rilevati sempre per il pentambo in testa alla classifica?

Giusto per avere un parametro di riferimento.
Saluti
 
Web  Top
view post Posted on 17/12/2023, 19:33
Avatar

Top Member

Group:
Member
Posts:
3,853

Status:


Gam buona serata, ti leggo solo ora...
Purtroppo non ho molte informazioni in merito avendo ripreso quest'analisi soltanto negli ultimi anni, mentre gli studi elaborati in tempi più remoti sono..ahimè..rimasti sui vari pc finiti poi al macero ^_^

Vedo comunque di raccogliere i dati a mia disposizione...

Quello che posso dirti già da subito è che in tempi anche recenti si è arrivati a superare le 350 estr. (FI - Settembre 2021 - 361 turni).

Sarò più preciso una volta verificati i fogli Excel relativi agli ultimi 4/5 anni.

Edited by *Skorpio* - 17/12/2023, 19:53
 
Top
view post Posted on 17/12/2023, 23:20
Avatar

Top Member

Group:
Member
Posts:
3,853

Status:


Gam, sono riuscito a risalire a ritroso - con precisione - fino al maggio del 2014.
Prima diventa più complicato perchè ho dati sparsi su più fogli Excel e neppure tutti sullo stesso PC :o:

Questi i dati essenziali per quanto riguarda la 1^ posizione:

Estrazione 10355 Ritardo attuale 198 Torino Rit.Posizione 18

Estraz.Ru.Rita.R.P.

10337 BA 224 074
10263 MI 215 022
10241 GE 284 137
10104 RO 170 016
10088 PA 171 006
10082 VE 181 064
10018 TO 196 038
09980 F I 361 115
09865 BA 382 194
09671 PA 244 023
09648 GE 339 160
09488 MI 187 054
09434 BA 143 012
09422 RO 215 018
09404 CA 264 012
09392 F I 284 150
09242 TO 154 067
09175 MI 137 003
09172 VE 177 005
09167 BA 225 051
09116 CA 193 021
09095 RO 225 078
09017 VE 301 168
08849 PA 317 ...e siamo al 20/05/2014.

Risulta utile, alle volte, conoscere anche il ritardo della posizione occupata nella graduatoria, così come i ritardi contemporanei di più ruote e/o i ritardi "globali" di una stessa ruota.
Certo che uno "script" appropriato potrebbe restituire informazioni più complete e certe..

Buona notte, Claudio.
 
Top
view post Posted on 18/12/2023, 08:48
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Ciao Skorpio,
dati molto ma molto interessanti, anche perché parliamo di soli 5 ambi.

Se hai voglia e tempo, prova a descrivere il meccanismo di "creazione" e aggiornamento della classifica (che forse in alcuni aspetti ricalca l'algoritmo degli Ammortizzatori del Ritardo), magari riusciamo a implementare uno script ad hoc che permetta di risalire ai vari storici (anche per RP).

Saluti
 
Web  Top
view post Posted on 18/12/2023, 11:44
Avatar

Top Member

Group:
Member
Posts:
3,853

Status:


Grazie dell'interessamento Gam, il procedimento è molto semplice.
Considerata l'estrazione iniziale "0" dove tutte le 10 ruote sono incolonnate nel classico ordine alfabetico (ed ognuna riporta i 5 Ambi maggiormente ritardati - in ordine cronologico) si considerano le uscite dei vari ambi riposizionando in Graduatoria le Ruote coinvolte in ordine di uscita fino ad arrivare alla composizione finale dell'intera Tabella.
Ad ogni uscita la ruota coinvolta scenderà al 10° ed ultimo posto mentre le altre saliranno di una posizione.
Logicamente l'Ambo uscito dovrà essere sostituito con il nuovo 5° maggiormente ritardato a ricomporre il Pentambo completo.
Parallelamente esiste una 2^ colonna di valutazione che riguarda la posizione delle 10 caselle (ed il loro rispettivo ritardo di sfaldamento) che varierà al variare della ricomposizione dell'ordine delle Ruote.
In effetti è un pò la modalità degli "ammortizzatori del ritardo" come ben hai intuito tu.
A dir il vero - per un certo periodo di tempo, qualche anno fà - avevo addirittura costruito in parallelo a queste 2 scale di valutazione la vera modalità degli "ammortizzatori" ampliandola a 2 diversi ordini di calcolo, con una prima graduatoria che teneva conto degli spostamenti delle Ruote ed una seconda che era condizionata dall'ordine della prima colonna degli ammortizzatori.
Una specie di Amm.01 e Amm.02 - analisi che devo dire riesce a fornire, sapendola leggere, delle ottime indicazioni "restrittive" di gioco.
Come puoi ben immaginare l'aggiornamento ed il controllo di tutte questi dati, effettuati manualmente con Excel, alla fine diventa particolarmente impegnativo e dispendioso in termini di tempo ed ho dovuto abbandonare il progetto.
Scusa se mi sono dilungato troppo, ma spero comunque - nelle prime righe - di aver chiarito il concetto che stà alla base dell'analisi specifica.
Saluti, Claudio.

 
Top
view post Posted on 18/12/2023, 13:11
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Ciao, in sostanza si dovrebbe ricalcare l'algoritmo di ricerca della scala A degli ammortizzatori del ritardo per estratto.

Dovrei avere lo script da qualche parte. Provo a vedere.
Piu tardi sposto questi messaggi in nuovo post, così non 'sporchiamo' il tuo di attualità.

Saluti
 
Web  Top
view post Posted on 19/12/2023, 08:39
Avatar

Top Member

Group:
Administrator
Posts:
1,719

Status:


Buongiorno a tutti,
come promesso ho ripescato lo script (non mio!), sviluppato in modo eccellente da Rosanna, che saluto, sperando passi a fare un giro.
Option Explicit
Sub Main
'S_A_001_Ammortizzatore_Ritardi_Tab_AB_13.01.16_per_lottoced_Turbo_Stat
'http://forum.lottoced.com/forum/lottoced/area-download/1898364-ammortizzatori-del-ritardo/page5

'ATTENZIONE: questo listato gira su SpazioMetria dalla versione 1.5.75 in su <====

Dim e,r,i,y,n,co,conta,contaes,k,kk,ris,RP,RC,capilista
Dim ini,fin,inizio,dInizio,p,p2,p3,p4,NuRitAtt,NuRitPre
Dim TB(10,4)' tabella che contiene i dati e attuale
Dim TBp(10,4)' tabella che contiene i dati es precedente
Dim A(10),B(10) ' vettore per i valori della scala A e B attuale
Dim Ap(10,2),Bp(10)'Matrice per i valori della scala Aprecedente e vettore per la scala B precedente
Dim At(10),Bt(10)' vettore per memorizzare temporaneamente le posizioni sortite
Dim aSortite(10) ' vettore per memorizzare le ruote con sortite di capilista
Dim tSortiti
Dim nStatA(3,10,10)' matrice statistica fre + max + Rit att Posizione/segnalatori scala A


fin = EstrazioneFin
ini = 10350'3950 'inizio ricerca

'Promemoria: 3950 inizio archivio senza buchi (non partire da 3949 perchè lo script contempla sempre una es precedente)
contaes = 0 'contatore estrazioni valide statistica (dalla scala A completa)
'----------------------------------inizializzo la matrice nStat
For i = 1 To 3
nStatA(i,0,0) = 0
For p = 1 To 10
For p2 = 1 To 10
nStatA(i,p,p2) = 0
Next
Next
Next
'-----------------------------------riempio la tabella dati passati sulla es di partenza: (ini-1)
For r = 1 To 10
n = PiuRitardatario(ini - 1,r)
RP = RitPosPR(r,ini - 1)
RC = RitardoEstrattoTurbo(n,ini - 1,r)
If NumCapilista(ini - 1,r) > 1 Then
co = 0
For i = 1 To 90
If RitardoEstrattoTurbo(i,ini - 1,r) = RC Then
co = co + 1
If co = 1 Then ris = Format2(i)
If co > 1 Then ris = ris & "." & Format2(i)
End If
Next
Else ris = Format2(n)
End If
TBp(r,1) = r
TBp(r,2) = ris' Numeri/o Più Ritardatari/o
TBp(r,3) = RP ' ritardo di posizione
TBp(r,4) = RC 'ritardo cronologico
Next

Call OrdinaMatriceTurbo(TBp,- 1,"3,4")
For r = 1 To 10
Ap(r,1) = Ap(r,1) - TBp(r,1)' memorizzo valori negativi sulla scala A iniziale (mi serve per controllarne la compilazione)
Ap(r,2) = Ap(r,1) ' inizializzo anche la seconda colonna con gli stessi valori della prima
Next
'---------------------------------------------output dati iniziali/pregressi
Call Scrivi
Call Scrivi(DataEstrazione(ini - 1) & "[" & ini - 1 & "]")
Call Scrivi("PO - RU - NU ---- RC -- RP - Ap")
For p = 1 To 10
Call Scrivi(Format2(p) & Space(3) & SiglaRuota(TBp(p,1)) & Space(3) & FormatSpace(TBp(p,2),6) & Space(2) & FormatSpace(TBp(p,4) + 1,3,1)_
& Space(3) & FormatSpace(TBp(p,3),3,1) & Space(4) & Ap(p,1) & Space(4) & Bp(p))
Next

'----------------------------------scansiono l'archivio elaborando i dati ad ogni estrazione(e)
For e = ini To fin
If ScriptInterrotto Then Exit Sub
Call AvanzamentoElab(ini,fin,e)
'----------------------------calcolo l'estrazione in cui la scala A è completa
If inizio = 0 Then
conta = 0
For p = 1 To 10
If Ap(p,1) > 0 Then conta = conta + 1
If conta = 10 Then
inizio = 1
dInizio = e
Call Scrivi
Call Scrivi("====================== SCALA A COMPLETA =============================")
Exit For
End If
Next
End If

If inizio = 1 Then ' dalla scala A completa inizio a fare la statistica.1^ cosa gestisco il ritardo incrementandolo di 1 ad ogni es
contaes = contaes + 1
For i = 1 To 10
For y = 1 To 10
nStatA(3,i,y) = nStatA(3,i,y) + 1
Next
Next
End If

'---------------------------------------------------------------------------------------------------------
Call Scrivi
Call Scrivi(DataEstrazione(e) & "[" & e & "] " & contaes)
Call Scrivi("PO - RU - NU ---- RC -- RP -- A -- B")

For r = 1 To 10 'ad ogni estrazione travaso sulla TBp i dati di TB
'A(r) = Ap(r)
If e > ini Then 'la TBp mi serve per tenere conto della situazione all'es precedente
TBp(r,1) = TB(r,1) 'ruota
TBp(r,2) = TB(r,2) 'numero/i capolista
TBp(r,3) = TB(r,3) 'RP
TBp(r,4) = TB(r,4) 'RC
End If
aSortite(r) = 0
tSortiti = 0
At(r) = 0
Bt(r) = 0
Next

For r = 1 To 10 ' poi per ogni ruota verifico i dati e riempio la Tabella per poterla ordinare
Call Messaggio(e & " " & r)
n = PiuRitardatario(e,r)' Numero Più Ritardatario attuale
NuRitPre = PiuRitardatario(e - 1,r) 'idem dell'es precedente
RP = RitPosPR(r,e)
RC = RitardoEstrattoTurbo(n,e,r)
If NumCapilista(e,r) > 1 Then
co = 0
For i = 1 To 90
If RitardoEstrattoTurbo(i,e,r) = RC Then
co = co + 1
If co = 1 Then ris = Format2(i)
If co > 1 Then ris = ris & "." & Format2(i)
End If

Next
Else ris = Format2(n)
End If
TB(r,1) = r
TB(r,2) = ris' Numeri/o Più Ritardatari/o
TB(r,3) = RP ' ritardo di posizione
TB(r,4) = RC 'ritardo cronologico

'-----------------------------------controllo sortite capilista e iniziale azzeramento posizioni cadute sulla scala A pregressa
If NumCapilista(e - 1,r) = 1 And n <> NuRitPre Then ' se c'era un solo capolista e il più Ritardatario è diverso da quello dell'es precedente
Call ColoreTesto(2) ' aggiorno i valori
Call Scrivi(SiglaRuota(r) & " uscito -> " & NuRitPre,,0)
For p = 1 To 10 ' scorro le posizioni della TB
If TBp(p,1) = r Then 'appena trovo corrispondenza tra le ruote TB PREC
'---------------------- step per scala B
If inizio = 1 Then
For p3 = 1 To 10
If Ap(p3,1) = p Then 'verifico la posizione della scala A sortita
For p4 = 1 To 10 '
If B(p4) = p3 Then Bp(p4) = 0 ' verifico se ce n'erano già le azzero
Next
Bt(r) = p3
End If
Next
End If
'-----------------------aggiornamento statistica scala A. Qui è necessario disporre della seconda colonna di Ap
'perchè sulla prima in taluni casi di multisortite i valori dei selettori vengono azzerati per permettere la
'corretta movimentazione della scala A
If inizio = 1 Then
nStatA(1,p,Ap(p,2)) = nStatA(1,p,Ap(p,2)) + 1 'aggiorno la freq sortita posizi/segnalatore
If nStatA(3,p,Ap(p,2)) > nStatA(2,p,Ap(p,2)) Then nStatA(2,p,Ap(p,2)) = nStatA(3,p,Ap(p,2))'aggiorno max rit
nStatA(3,p,Ap(p,2)) = 0 ' azzero il rit
End If
'--------------------------step valorizzazione scala A
For p2 = 1 To 10
If Ap(p2,1) = p Then Ap(p2,1) = 0 ' verifico che non si siano prec casi con quella posizione altrimenti la azzero
Next

Call Scrivi(" posizione precedente " & p & " con segnalatore " & Ap(p,2))
Call ColoreTesto(0)
At(r) = p ' memorizzo sul vettore tale posizione
aSortite(r) = 1
tSortiti = tSortiti + 1
'------------------------fine step scala A
End If
Next
Else '--------------------------altrimenti in caso di più capilista...mostro nell'output quello sortito
If NumCapilista(e - 1,r) > 1 And NumCapilista(e,r) = 1 Then
For i = 1 To 5
If RitardoEstrattoTurbo(Estratto(e,r,i),e - 1,r) = RitardoEstrattoTurbo(NuRitPre,e - 1,r) Then
Call ColoreTesto(2)
Call Scrivi(SiglaRuota(r) & " uscito 1 dei capilista -> " & Estratto(e,r,i))
End If
Next
Call ColoreTesto(0)
End If
End If
Next
Call OrdinaMatriceTurbo(TB,- 1,"3,4")

'-----------------------------------aggiornamento scala A definitiva 1^ parte
If tSortiti = 0 Then
For p = 1 To 10 ' se non ci sono state sortite di capilista la scala A non varia
A(p) = Ap(p,1)
Next
Else
k = 11 - tSortiti
For p = 10 To 1 Step - 1' scorro la tabB al contrario
If Ap(p,1) <> 0 Then
k = k - 1
If k = 0 Then Exit For
A(k) = Ap(p,1)
End If
Next
End If
'----------------------------------aggiungo i nuovi usciti sulla scala A 2^ parte
kk = 10 - tSortiti
For r = 1 To 10
If aSortite(TB(r,1)) = 1 Then
kk = kk + 1
A(kk) = At(TB(r,1))

End If
Next

'----------------------------aggiornamento scala B 1^ parte (da quando la scala A è completa)
If inizio = 1 Then
If tSortiti = 0 Then
For p = 1 To 10 ' se non ci sono state sortite di capilista la scala B non varia
B(p) = Bp(p)
Next
Else
k = 11 - tSortiti
For p = 10 To 1 Step - 1' scorro la tabB al contrario
If Bp(p) <> 0 Then
k = k - 1
If k = 0 Then Exit For
B(k) = Bp(p)
End If
Next
End If
'----------------------aggiungo i nuovi usciti scala B 2^ parte
kk = 10 - tSortiti
For r = 1 To 10
If aSortite(TB(r,1)) = 1 Then
kk = kk + 1

B(kk) = Bt(TB(r,1))
End If
Next
End If
'-------------------output
For p = 1 To 10
Call Scrivi(Format2(p) & Space(3) & SiglaRuota(TB(p,1)) & Space(3) & FormatSpace(TB(p,2),6) & Space(2) & FormatSpace(TB(p,4) + 1,3,1)_
& Space(3) & FormatSpace(TB(p,3),3,1) & Space(2) & FormatSpace(A(p),3,1) & Space(2) & FormatSpace(B(p),3,1))
Next
'-----------------aggiorno le scale A B pregresse con i valori delle ultime scale A B appena aggiornate
For p = 1 To 10
Ap(p,1) = A(p)
Ap(p,2) = A(p)' la seconda colonna serve per le statistiche in quando sulla prima in taluni casi certe pos vengno azzerate durante la movimentazione scala
Bp(p) = B(p)
Next
Next
'-----------------Output statistica

Call Scrivi
Call Scrivi("=======================================================================")
Call Scrivi
Call Scrivi("AMMORTIZZATORI DEI RITARDI da studio di SEVERO",1)
Call Scrivi("STATISTICA FRE - MAX - ATT POSIZIONI(blu) SEGNALATORI (rosso) SCALA A",1)
Call Scrivi("dal " & DataEstrazione(dInizio) & " al " & DataEstrazione(EstrazioneFin) & " estrazioni valide: " & contaes,1)
Call Scrivi
For p = 1 To 3
If p = 1 Then Call Scrivi("FR",1,False)
If p = 2 Then Call Scrivi("MX",1,False)
If p = 3 Then Call Scrivi("RT",1,False)
For i = 1 To 10
Call ColoreTesto(2)
Call Scrivi(FormatSpace(i,6,1),1,False)
If i = 10 Then Call Scrivi
Next
For i = 1 To 10
Call ColoreTesto(1)
Call Scrivi(FormatSpace(i,2,1),1,False)
Call ColoreTesto(0)
For y = 1 To 10
Call Scrivi(FormatSpace(nStatA(p,i,y),6,1),,False)
If y = 10 Then Call Scrivi
Next
Next
Scrivi
Next
Call Scrivi("Legenda: FR=frequenza di sortita MX=Max Rit Sto RT= ritardo attuale")

End Sub
'-----------------------------------FUNZIONE Numeri capilista
Function NumCapilista(e,r)
Dim F_piurit,F_rit,F_i

F_piurit = PiuRitardatario(e,r)
F_rit = RitardoEstrattoTurbo(F_piurit,e,r)

NumCapilista = 0
For F_i = 1 To 90
If RitardoEstrattoTurbo(F_i,e,r) = F_rit Then NumCapilista = NumCapilista + 1
Next
End Function
'-----------------------------------FUNZIONE Ritardo di posizione capilista
Function RitPosPR(r,e)
Dim F_n,F_np,F_rit,F_ritp,F_es,F_co

F_co = 0
For F_es = e To e - 500 Step - 1
F_n = PiuRitardatario(F_es,r)
F_rit = RitardoEstrattoTurbo(F_n,F_es,r)
F_np = PiuRitardatario(F_es - 1,r)
F_ritp = RitardoEstrattoTurbo(F_np,F_es - 1,r)
If F_rit = F_ritp + 1 Then
F_co = F_co + 1
Else Exit For
End If
Next
RitPosPR = F_co
End Function

Il meccanismo di base mi sembra sia lo stesso.
A step forse possiamo evolvere lo script, passando dall'estratto più ritardato di ogni ruota all'ambo più ritardato.
Saluti
 
Web  Top
6 replies since 17/12/2023, 19:29   110 views
  Share