Novità

Proposta statistica decine

Stato
Chiusa ad ulteriori risposte.
R

Roby

Guest
Salve a tutti
sono un nuovo iscritto ma vi seguo da un po’ di tempo e ho scaricato il programma spaziometria trovandolo ottimo. Volevo chiedere a chiunque voglia farlo uno script,che poi magari si potrà implementare all’interno del software, che faccia le seguenti cose:
avendo delle decine e/o novine a disposizione deve visualizzarmi gli ultimi 10 ritardi + l’undicesimo che sarà il ritardo in corso (es. decina 1.2.3.4.5.6.7.8.9.10 sulla ruota di bari con i seguenti ritardi : 16-5-10-18-5-10-4-3-11-1 e con ritardo attuale alla data del 16/04/2011 di 1 estrazione (il ritardo 16 è il decimo, il ritardo 5 è il nono, il ritardo 10 è l’ottavo ecc. fino al ritardo in corso) ma dovrà evidenziare le decine che avranno gli ultimi 5 ritardi maggiore di 11.esempio decina 90.26.52.78.14.40.66.2.28.54 sulla ruota di bari con i seguenti ritardi: 9-29-5-13-2-14-31-34-27-42 rit. attuale 4 come potete vedere gli ultimi 5 ritardi sono superiori alle 11 estrazioni che sarebbe il ciclo naturale delle decine e quindi molto probabile a produrre l’ambo. Per il momento mi fermo qui per capire se sono chiaro nella esposizione e prontissimo ad approfondire l’argomento.
Lippo


Saluti
 

Enplein

Super Member >PLATINUM<
Ciao lippo, è un listato creato con Lottodesk
e modificato per l'occasione, e che gira anche
su Spaziometria del grande LuigiB, che ringrazio
ancora una volta.
Spero faccia quello da Te richiesto.

Ciao, Enplein.

Codice:
Option Explicit
Sub Main()
'a lippo LottoCed dec nat con 5 ritardi minimi di 11 estrazioni listato da Enplein.
	Dim nu(10,1),n(1),ru(1),rt(11),num(10),poste(3)
	Dim qes,xrt,r,kl,es,d,i,co,g,ex,k,j
	qes=InputBox ("Quante estrazioni vuoi analizzare?",,800)
	'd=CInt(InputBox ("Indica la decina naturale desiderata (0-8):",,0))
	xrt=CInt(InputBox ("Indica il ritardo minimo della decina:",,11))
	kl=InputBox ("Indica i colpi di gioco ",,24)
	'poste(1)=1 ' giocata per ambata ?
	poste(2)=1:poste(3)=1
	For es=EstrazioneFin-qes To EstrazioneFin 
	Messaggio es
		For r=1 To 10
		ru(1)=r
			For d=0 To 8
	'-----------------------------------------------------------------
	For i= 1 To 90
	If DecinaNaturale(i)=d Then co=co+1 : nu(co,1)=i : num(co)=i
	Next
	'-----------------------------------------------------------------
	co=0:g=0:ex=0
	For i= 1 To 11
	ex=es-g
	rt(i)=SerieRitardo(ex-100,ex,num,ru,2)
	g=g+rt(i)+1
	Next
	k=0
	For j=2 To 6
	If rt(j)>xrt Then k=k+1
	Next 
				If k=5 Then ' controlla la presenza di 5 ritardi superiore al minimo 
					If rt(1)=0 Then ' Imposta la partenza quando il ritardo della decina è = 0
	Scrivi String(60,"-") 
	Scrivi " RICERCA SULLA RUOTA DI " & SiglaRuota(r),1
	Scrivi " Decina naturale "& d & "["& StringaNumeri(num)&"]",1
	Scrivi Space(4)& DataEstrazione(es)& " DecinaNaturale "&d&"  R.A. "& Format2 (rt(1)),1
	Scrivi Space(4)& " Ritardi = "&"("& rt(1)&")"&" "&rt(2)&"."&rt(3)&"."&rt(4)&"."&rt(5)&"."&rt(6)&_
	" / "&rt(7)&"."&rt(8)&"."&rt(9)&"."&rt(10)&"."&rt(11),1
	ImpostaGiocata 1,num,ru,poste,kl,3,1
	Gioca es
					End If 
				End If 
			Next 
		Next 
	Next 
ScriviResoconto 
End Sub
 

lippo

Senior Member
Grazie per la risposta Enplein.
Non è esattamente quello che volevo il listato che gentilmente mi hai postato ma comunque l'ho utilizzato lo stesso perchè mi hai dato la possibilità di controllare se il sistema è vincente oppure no e infatti mi fa andare in guadagno.Ho modificato il ritardo di partenza che da zero l'ho portato a 6 perchè il gioco si fa dalla sesta estrazione di ritardo fino alla 11 esima.Poi posso spiegarlo meglio in dettaglio. Il problema è che queste dicine sono difficile da trovare perchè rare tieni conto che ho fatto la prova su 8000 estrazioni e ne ha trovate solo cinque anche perchè le ricerca me la fa solo sulle decine naturali.Quindi ho bisogno di fare questa ricerca su un numero molto alto di decine diciamo intorno alle 3700 e che penso che il software Spaziometria dovrà già caricarsele dentro ( io le 3700 decine ho in excel). Non so se sono stato chiaro altrimenti lo spiego più in dettaglio. Fammi sapere.
Lippo

Saluti
 

Enplein

Super Member >PLATINUM<
quote:Quindi ho bisogno di fare questa ricerca su un numero molto alto di decine diciamo intorno alle 3700

Ciao lippo, cosa intendi per 3700 decine???
Attualmente utilizziamo le 9 Decine Naturali.
Se puoi dare una spiegazione più dettagliata
per la ricerca, possiamo migliorare lo script.

Ciao, Enplein.
 
L

LuigiB

Guest
Ciao Enplein penso che voglia intendere decine come sinonimo
di combinazioni non come nome della formazione tradizionale.
In questo caso si dispone di 3700 combinazioni da 10 numeri
che devono essere processate secondo le specifiche.
Con gli script è possibile leggere diretttamente dal foglio
excel , tuttavia sarebbe piu semplice se da excel fosse
creato un file di testo e dare quello in pasto all'eventuale
script.
Leggere i file di testo si fa con una sola funzione , leggere
un foglio excel richiede l'utilizzo dell'automazione
di excel è semplice lo stesso ma ci vogliono piu istruzoni.
Consiglio percio di produrre il file di testo con appositi
delimitatori ad esempio cone excel si potrebbe creare un file csv.

Ciao !
 

lippo

Senior Member
Ciao Enplein ha ragione LuigiB perchè effettivamente sono 3700 combinazioni diverse di 10 numeri (decine)da controllare! Io dispongo di un programmino in excel che mi fa questo ma purtroppo per analizzare a uno a uno le 3700 decine per ogni ruota impiega circa 4 ore e quindi non posso utilizzarlo.Come dicevo prima trovare queste decine è raro perchè da qualche prova che ho fatto con il programma in excel ( aspettando 4 ore) su 3700 decine ne trova da 1 a 6/7 massimo giocabili per ogni ruota e poi alla prossima estrazione si deve riaggiornare e aspettare ancora 4 ore per ogni ruota. Queste combinazione sono importanti ai fini del gioco perchè sono al limite di rottura ( dare l'ambo) cioè se per 5 volte hanno passato il ciclo di 11 estrazioni senza mai uscire in quesll'intervallo raramente lo faranno per la sesta volta.Cerco di spiegarmi bene; io ho una decina che ha un ritardo di 12 estr. quindi significa che nell'intervallo di ritardo che va da 0 a 11 non ha dato l'ambo , poi sempre questa decina immaginiamo che esca alla 20esima estrazione , quindi la prossima estrazione avrà ritardo 1 poi ritardo 2 ecc e per la seconda volta ripassa il "ciclo" da 0 a 11 senza uscire perchè uscirà alla 30 esima estr. Questa decina si dice che ha un ritardo di ciclo pari a 2 perchè per 2 volte non ha dato l'ambo nell'intervallo 0-11 estrazioni) e cos' via per 5 volte. se vuoi posso inviarti la schermata o tutto il programma in excel per vedere meglio, inoltre posso anche inviarvi il file in excel delle 3700 decine perchè non saprei trasformarlo in csv. Sperando di essere staro più chiaro resto in attesa.
Lippo



Saluti
 
L

LuigiB

Guest
niente è facilissimo , vai su www.megaupload.com
c'è un pulsante che ti fa selezionare un file dal tuo pc ,
tu lo prem iselezioni il file xls, poi riempi il campo che sta sotto con una breve descrizione e poi premi il pulsante upload , al termine ti dara la link che devi postare qui nel forum
Ciao
 
L

LuigiB

Guest
ciao Lippo , allora :

passo 1

scarica il seguente file :
http://www.megaupload.com/?d=6OPUMPYX

passo 2

apri il programma spaziometria , nel primo menu
c'è una voce che si chiama APRI DIRECTORY DATI
cliccala , si aprira una cartella di windows.

passo 3
incolla nella cartella aperta a passo 2 il
file scaricato al passo 1.

passo 4

incolla lo script che posto ed eseguilo.



Il file csv che stai scaricando da megaupload lo puoi produrre pure da solo facendo da excel salva con nome e poi selezionando nell'apposita casellina della finestra salva con nome</u> il tipo
CSV testo delimitato da separatore</u>.

ciao e verifica se c'è qualche errore l'ho scritto un po' al volo


p.s.

dimeticavo lo script opera sul range di estrazioni impostato nel
programma per quanto riguarda il rangeMax , rangeMin invece è sempre 1 indipendentemente dal range impostato nel programma.


Codice:
Option Explicit

Class clsCombinazione

	Public aNumeri
	Public aRitardi
	Public nSommaUltim5
	Public  nSommaRit 
	Public bUltimi5ritMaggDi11
	
	
	Sub SetNumeriFromRigaCsv(sRiga)
		Dim k
		ReDim aV(0)
		Call SplitByChar(sRiga,";",aV)
		ReDim aNumeri(10)
	
		For k = 1 To 10
			If IsNumeric(aV(k)) Then
				aNumeri(k) = CInt(aV(k))
			Else
			
				aNumeri(k) = 0
			End If
		Next
		
	End Sub
	
Sub CalcolaRitardi(fine,Sorte,aRuote,RitardoMinimo)
	
	
		ReDim aRitardi(11)
		
		Dim nCicli
		Dim nEstrFine
		Dim k 
		
		nCicli = 11
		nEstrFine = fine
		
		
		
		
		Do While nCicli > 0
			
			aRitardi(nCicli) = RitardoCombinazione(aRuote,aNumeri,Sorte,nEstrFine)	
			
			If nCicli > 6 Then
				nSommaUltim5 = nSommaUltim5 +(aRitardi(nCicli))
				
				
			End If
			
			nSommaRit = nSommaRit + aRitardi(nCicli)
	
			nEstrFine = nEstrFine - aRitardi(nCicli) - 1
			nCicli = nCicli - 1
			If nEstrFine <= 0 Then Exit Do
		Loop
	
		bUltimi5ritMaggDi11 = True
		For k = 7 To 11
			If aRitardi(k) < RitardoMinimo Then
				bUltimi5ritMaggDi11 = False 
				Exit For
			End If 
		Next
	End Sub
	
End Class
Sub Main
	
	
	Dim CollDecine
	Dim Ruota,sorte
	Dim RangeFine
	Dim RitardoMinimo
	Dim MaxDaMostrare  
	
	sorte = 2 ' ambo
	RitardoMinimo = 11 ' per la gestione degli ultimi 5 ritardi
	MaxDaMostrare = 100  ' le prime 100 combinazioni che hanno i 5 ultimi rit magiori di 11 ordinate per somma rit ultimi 5
	Ruota = ScegliRuota
	
	RangeFine = EstrazioneFin
	
	
	If Ruota > 0 Then 	
		
		ReDim aRuote(1)
		aRuote(1) = Ruota
		
		Call AlimentaCollectionDecine(CollDecine,RangeFine,sorte,aRuote,RitardoMinimo)
		
		If CollDecine.count > 0 Then
			Call OrdinaItemCollection(CollDecine,"nSommaUltim5")
			Call CreaOutput(CollDecine ,MaxDaMostrare  )
			
		End If
	End If
	MsgBox "fine"
	
	
End Sub

Sub CreaOutput(coll ,MaxDaMostrare )

	ReDim aTitoli(14)
	Dim k,i
	Dim clsDecina
	
	
	aTitoli(1) = "Numero"
	aTitoli(2) = "Combinazione               "
	For k = 1 To 11
		aTitoli(k + 2) = "R" &(k) & "     "
	Next
	aTitoli(14) = "Somma ultimi 5"
	
	
	
	Call InitTabella(aTitoli,vbYellow)
	
	For Each clsDecina In coll
		
		If clsDecina.bUltimi5ritMaggDi11  Then 
			i = i + 1
			
			ReDim aValori(14)
			aValori(1) = i
			aValori(2) = StringaNumeri(clsDecina.aNumeri)
			For k = 1 To 11
				aValori(k + 2) = clsDecina.aRitardi(k)
			Next
			aValori(14) = clsDecina.nSommaUltim5
			
			Call AddRigaTabella(aValori)
			
			If i > MaxDaMostrare Then Exit For 
		End If
		
	Next	
	
	Call Scrivi ("Sono mostrate le combinazioni i cui ultimi 5 ritardi sono maggiori di 11",True)
	
	Call CreaTabella 		
End Sub
Sub AlimentaCollectionDecine(coll,fine,Sorte,aRuote,RitardoMinimo)

	
	Dim sPercorsoFileCsv
	Dim k
	Dim clsDecina
	
	Set coll = GetNewCollection

	sPercorsoFileCsv = GetDirectoryAppData & "decine.csv"
	
	ReDim aLinee(0)
	If LeggiRigheFileDiTesto(sPercorsoFileCsv,aLinee) Then
		Call Messaggio("Lettura combinazioni e calcolo ritardo ... Attendere")
		For k = 1 To UBound(aLinee)
 

lippo

Senior Member
Ciao LuigiB
è straordinario ed è quasi perfetto, invece di 4 ore mi fa i calcoli in pochissimi secondi.Il ritardo R11 in realtà si deve chiamare ritardo attuale ( Rit. Att.) è deve essere minore di 12 perchè l'ambo lo sto cercando proprio in quell'intervallo mentre il programma mi restituisce tutte le decine con R11 > di 11.Poi ho notato che negli ultimi 5 ritardi ci sono decine con ritardo 11 invece devono essere > di 11 (oppure farmi scegliere a me quanto deve essere ampio il ciclo in modo da allargare o stringere la durata del ciclo).L'ultima cosa quando mi restituisce la tabella non so più a che ruota appartiene la ricerca perchè me la chiede all'inizio ma poi non è riportata la ruota sulla tabella.Per il momento grazie.
Lippo

Saluti
 
L

LuigiB

Guest
Ciao Lippo , quindi per ultimi 5 ritardi non si intende anche il ritardo corrente ..le modifiche le posso fare nel pomeriggio ora sto al lavoro ...se qualcuno che ha piu tempo vuole fartele lui sono facilissime e non mi offendo senno aspetta stasera.
Un saluto
 

lippo

Senior Member
Ciao LuigiB
sì il ritardo corrente non deve essere considerato negli ultimi 5 ritadi.Ok aspetto.
Lippo

Saluti
 
L

LuigiB

Guest
ciao , ho fatto alcune modifiche ...


Codice:
Option Explicit

Class clsCombinazione

	Public aNumeri
	Public aRitardi
	Public nSommaUltim5
	Public nSommaRit
	Public bUltimi5ritMaggDi11
	Public bRitCorrMinoreDi12 
	Public Ruota
	
	
	Sub SetNumeriFromRigaCsv(sRiga)
		Dim k
		ReDim aV(0)
		Call SplitByChar(sRiga,";",aV)
		ReDim aNumeri(10)
	
		For k = 1 To 10
			If IsNumeric(aV(k)) Then
				aNumeri(k) = CInt(aV(k))
			Else
			
				aNumeri(k) = 0
			End If
		Next
		
	End Sub
	
	Sub CalcolaRitardi(fine,Sorte,aRuote,RitardoMinimo,CicliDiRitardo,UltimiRitardiDaConsiderare)
	
	
		ReDim aRitardi(11)
		
		Dim nCicli
		Dim nEstrFine
		Dim k
		
		nCicli = CicliDiRitardo
		nEstrFine = fine
		
		
		
		
		Do While nCicli > 0
			
			aRitardi(nCicli) = RitardoCombinazione(aRuote,aNumeri,Sorte,nEstrFine)	
			
			nSommaRit = nSommaRit + aRitardi(nCicli)
	
			nEstrFine = nEstrFine - aRitardi(nCicli) - 1
			nCicli = nCicli - 1
			If nEstrFine <= 0 Then Exit Do
		Loop
	
		bUltimi5ritMaggDi11 = True
		For k = (CicliDiRitardo-UltimiRitardiDaConsiderare)   To (CicliDiRitardo-1)
			nSommaUltim5 = nSommaUltim5 +(aRitardi(k))
				
			If aRitardi(k) <= RitardoMinimo Then
				bUltimi5ritMaggDi11 = False
				
			End If
		Next
		
		If aRitardi(CicliDiRitardo) <= RitardoMinimo Then 
			bRitCorrMinoreDi12  = True
		Else
			bRitCorrMinoreDi12 = False 
		End If 
	End Sub
	
End Class
Sub Main
	
	
	Dim CollDecine
	Dim Ruota,sorte
	Dim RangeFine
	Dim RitardoMinimo
	Dim MaxDaMostrare
	Dim CicliDiRitardo ' il numero dei ritardi da calcolare compreso l'ultimo
	Dim UltimiRitardiDaConsiderare ' quanti ritardi considerare (escluso ultimo perche rit corrente)
	
	
	Set CollDecine = GetNewCollection
	
	sorte = 2 ' ambo
	
	RitardoMinimo =11
	RitardoMinimo = CInt(InputBox( "Inserire il valore per il ritardo naturale", "Ritardo naturale" ,RitardoMinimo )) ' per la gestione degli ultimi 5 ritardi
	
	CicliDiRitardo =11
	CicliDiRitardo = CInt(InputBox( "Inserire il valore per i cicli di ritardo a ritroso da calcolare", "Cicli di ritardo" ,CicliDiRitardo )) ' per la gestione degli ultimi 5 ritardi
	
	UltimiRitardiDaConsiderare =5
	UltimiRitardiDaConsiderare = CInt(InputBox( "Inserire il valore per identificare la quantita di ritardi (escluso l'ultimo che è il corrente) da valutare per la selezione", "Cicli di ritardo" ,UltimiRitardiDaConsiderare )) ' per la gestione degli ultimi 5 ritardi
	
	
	MaxDaMostrare = 100 ' le prime 100 combinazioni che hanno i 5 ultimi rit magiori di 11 ordinate per somma rit ultimi 5
	
	
	
	ReDim aRuote(1)
	ReDim abRuote (12) 
	Call ScegliRuote( aRuote , abRuote )

	RangeFine = EstrazioneFin
	
	If CicliDiRitardo- UltimiRitardiDaConsiderare <=0 Then
		MsgBox "I cicli di ritardo devono essere maggiori del valore che specifica quanti degli ultimi ritardi considerare"
		Exit Sub
	End If
	
	If CicliDiRitardo > 0 And  UltimiRitardiDaConsiderare  > 0  And RitardoMinimo  > 0 Then 	
	
		For Ruota = 1 To 12
			If abRuote(Ruota) Then 
				If Ruota <> 11 Then 
					
					
					Call AlimentaCollectionDecine(CollDecine,RangeFine,sorte,Ruota,RitardoMinimo,CicliDiRitardo,UltimiRitardiDaConsiderare  )
					
					
				End If
			End If 
		Next	
		
		If CollDecine.count > 0 Then
				Call Messaggio ("Ordinamento in corso.....")
				Call OrdinaItemCollection(CollDecine,"nSommaUltim5")
				
				Call Messaggio ("Creazione tabella riepilogativa.....")
				Call CreaOutput(CollDecine,MaxDaMostrare,RitardoMinimo,CicliDiRitardo,UltimiRitardiDaConsiderare )
					
		End If	
	End If
	
	
End Sub

Sub CreaOutput(coll,MaxDaMostrare ,RitardoMinimo ,CicliDiRitardo ,UltimiRitardiDaConsiderare )


	
	Dim k,i
	Dim clsDecina
	Dim nColonne 
	
	nColonne = 3 + CicliDiRitardo  + 1
	
	ReDim aTitoli(nColonne)
	
	aTitoli(1) = "Numero"
	aTitoli(2) = "          Combinazione            "
	aTitoli(3) = "Ruota "
	For k = 1 To CicliDiRitardo -1
		aTitoli(k + 3) = "R" &(k) & "     "
	Next
	aTitoli(nColonne -
 

lippo

Senior Member
Caio LuigiB
nel provare il listato, che funziona benissimo e che mi fatto trovare 2 decine molto importanti da giocare ( se qualcuno vuole le posso postare), mi sono accorto che mi manca qualcosa e cioè mi manca lo storico che tutte le decine hanno fatto nell'intervallo di ricerca impostato da Spaziometria. Mi spiego meglio:io vorrei conscere di tutte le decine che sto analizzando che ritardo massimo di cicli ha avuto ? Perchè grazie a questo listato ho scoperto 4 decine (su circa 3700 sono pochissime , ma ci sono e bisogna tenerne conto!) che hanno un ritardo di ciclo di 7 ma in passato quante altre decine hanno avuto gli stesso ritardi o magari si sono spinte anche più in là, insomma mi manca um "metro che mi permetta di misurarle".Puoi cortesemente vedere se si può realizzare questo? Avrei qualche altra miglioria da apportare sempre per ottimizzare al massimo questo listato e per dare il massimo vantaggio nei confronti del banco a chi gioca ma ho paura di disturbare troppo! Se vuoi e non arreco disturbo ne discutiamo.
Lippo

Saluti
 

solare

Advanced Member >PLATINUM<
Ciao Lippo, volevo chiederti
quali sono i parametri che inserisci una volta avviato il listato ?
Grazie
 

lippo

Senior Member
Ciao Solare
i parametri sono : 11 per il ritardo naturale( 1 finestra), 11 per i cicli di ritardo da verificare a ritroso (2 finestra) e infine 5 oppure 6 o addirittura 7 cone dicevo sopra per scovare le decine più critiche al limite di rottura perchè più aumenti i ritardi di cicli più sono rare da trovare.Se vuoi maggiori dettagli chiedi pure.
Lippo

Saluti
 
Stato
Chiusa ad ulteriori risposte.

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 03 maggio 2024
    Bari
    38
    11
    08
    19
    81
    Cagliari
    69
    50
    27
    65
    06
    Firenze
    60
    05
    42
    75
    84
    Genova
    17
    29
    71
    48
    80
    Milano
    02
    33
    81
    85
    63
    Napoli
    12
    10
    29
    51
    84
    Palermo
    04
    21
    69
    79
    50
    Roma
    62
    72
    84
    30
    90
    Torino
    41
    33
    46
    03
    68
    Venezia
    03
    29
    10
    85
    33
    Nazionale
    72
    03
    82
    37
    58
    Estrazione Simbolotto
    Milano
    19
    22
    24
    08
    32
Alto