Novità

x LuigiB - aiuto script - classifica costanti

Halmun

Advanced Member >PLATINUM<
ciao Luigi,
se non ti disturbo volevo chiedereti una modifica del seguente script che vorrei affiancare solo a titolo visivo al discorso dei Picchi, in quanto i pronostici del procedimento-Picchi, si prestano decisamente meglio ad osservazione visiva tramite i grafici e non statistica, quindi questo script mi servirebbe di supporto x eventuali convergenze o altro.
--------------------------------------------------


Sub main()
Dim ruote(10)
Dim numeri1(10)
Dim numeri2(10)
Dim poste(5)
Dim posta(5)
poste(1)=1


ka=0.167 '1° costante
kb=0.550 '2° costante


ruote(1)=1


For n=7301 To EstrazioneFin
If IndiceMensile(n+1)=1 Then


numeri1(1)=Fuori90(Int(Estratto(n,1,4)/ka))
numeri1(2)=Fuori90(Int(Estratto(n,1,4)/kb))


ImpostaGiocata 1,numeri1,ruote,poste,9,1


Gioca n
End If
Next
ScriviResoconto
End Sub


-----------------------------------


come vedi il procedimento è estremamente semplice, ma prende in considerazione anche 2 Costanti ( ka e kb ) che qui riportano un valore fisso, mentre nella modifica che vorrei effettuare questi 2 valori devono variare in automatico a seconda della miglior percentuale finale.
mi spiego:
ogni costante deve lavorare da 0,001 a 30 aumentando a passo 0,001 in modo da poter ottenere alla fine del range analizzato una classifica delle 10 migliori coppie di costanti, con a fianco la percentuale d'esito, x ogni singola coppia.


esempio - Classifica - inventato al momento x capirci:


01° -- ka = 0,167 kb = 0,550 -- 86,127 %
02° -- ka = 0,131 kb = 0,871 -- 84,060 %
03° -- ka = 0,885 kb = 0,315 -- 82,757 %
04° -- ka = 1,789 kb = 1,316 -- 81,286 %
05° -- ka = 2,904 kb = 0,452 -- 79,458 %
06° -- ka = 0,247 kb = 2,057 -- 78,147 %
07° -- ka = 0,391 kb = 0,620 -- 76,744 %
08° -- ka = 2,347 kb = 0,338 -- 74,866 %
09° -- ka = 0,417 kb = 0,370 -- 73,506 %
10° -- ka = 0,099 kb = 0,495 -- 71,938 %


inserendo i parametri di ricerca come:


scelta ruota.
scelta colonna estratto.
scelta range.
scelta tipo di analisi. ( opzione 1- indice mensile, opzione 2- a passo con sub-scelta ( passo-1, passo-2, passo-3, ecc. ecc, )


sperando che la cosa possa esser fattibile ti ringrazio x l'eventuale attenzione.




un saluto.
 
L

LuigiB

Guest
ciao Halmun bisogna sempre considerare che una variabile che procedendo di un millesimo alla volta deve arrivare a 30 impiega 30000 cicli, poi se dobbiamo ottenere le combinazioni tra le due variabili dovremmo aspettarci un numero pari al prodotto di 30000 * 30000
e cioè 900.000.000 di combinazioni possibili senza contare poi che ognuna di queste combinazioni deve essere valutata da quanto vedo per 9 colpi e per un numero imprecisato di estrazioni ... forse tra qualche centinaio di anni avrai ottenuto l'output dello script proprio quando avranno appena inventato dei supercomputer in grado di gestire una cosi elevata mole di dati in pochi secondi ... ;)

ciao
 

Halmun

Advanced Member >PLATINUM<
lo scorrere delle 30000 combinazioni su range a libera scelta non era un problema, almeno in excel, dove ho già realizzato un foglio con modulo scorrevole in autom. che mi trova tutte le migliori costanti, ma non me le memorizza a parte e non me le distribuisce poi in classifica, o almeno io non sono capace di farlo. con excel purtroppo devo cavar fuori le migliori man mano che il bip sonoro che ho integrato nel foglio mi segnala il raggiungimento della condizione, e me le memorizzo io a parte.
speravo che con uno script si potesse ovviare al problema velocizzando il tutto.... ma non importa, ti ringrazio ugualmente Luigi, ci sentiamo magari x cose + semplici.
ciao.
 
L

LuigiB

Guest
fose non ho capito bene il procedimento che adoperi perche dubito seriamente che excel si sbrighi a valutare 900 milioni di combinazioni possibili ..
 

Halmun

Advanced Member >PLATINUM<
non con le costanti in coppia Luigi, il mio f.excel mi lavora solo su una costante alla volta compresa fra 0,001 e 30 = 30000 cosa che un modulo scorrevole di excel ti fa nel giro di 5 minuti al max.
successivamente prendo le migliori che ho trovato e le accoppio x doppia ambata in 9 C.
se dovesse fare l'elaborazione completa come giustamente dici ( 900.000.000 ) ci impiegherei una vita, ma a parte questo non so nemmeno farlo in excel.
eventualmente , sempre con le condizioni precedenti potresti automatizzarmi lo script x una sola ambata invece che con 2?
certo, ce l'ho già in excel, ma se almeno riuscissi ad avere la classifica di una sola ambata già sarebbe molto.

es:

Sub main()
Dim ruote(10)
Dim numeri1(10)
Dim numeri2(10)
Dim poste(5)
Dim posta(5)
poste(1)=1


ka=0.167 '1° costante



ruote(1)=1


For n=7301 To EstrazioneFin
If IndiceMensile(n+1)=1 Then


numeri1(1)=Fuori90(Int(Estratto(n,1,4)/ka))



ImpostaGiocata 1,numeri1,ruote,poste,9,1


Gioca n
End If
Next
ScriviResoconto
End Sub

ne ho tolta una al volo, cosi potrebbe magari andar bene come tempi di elaborazione x la classifica?
 
L

LuigiB

Guest
il fatto è che non riesco a capire che ti serve ... da come avevo inteso io il processo prevedeva di trovare le combinazioni migliori tra le due variabili ka e kb quindi implicitamente di svilupparle tutte.
Visto che comunque ti districhi in excel sicuramente con un po di impegno non avrai fatica con gli script.
Visto che hai postato gia uno script cos'è che non riesci a fare ? Cioè dove ti sei bloccato A valorizzare dinamicamente la variabile ?
Io preferirei aiutarti a fare da solo il tuo script ...ciao
 
L

LuigiB

Guest
il fatto è che non riesco a capire che ti serve ... da come avevo inteso io il processo prevedeva di trovare le combinazioni migliori tra le due variabili ka e kb quindi implicitamente di svilupparle tutte.
Visto che comunque ti districhi in excel sicuramente con un po di impegno non avrai fatica con gli script.
Visto che hai postato gia uno script cos'è che non riesci a fare ? Cioè dove ti sei bloccato A valorizzare dinamicamente la variabile ?
Io preferirei aiutarti a fare da solo il tuo script ...ciao
 

Halmun

Advanced Member >PLATINUM<
mi serve eccome Luigi, sapere a colpo d'occhio quali sono le migliori costanti che abbiano ovviamente ottenuto le migliori percentuali di esiti positivi non è certo cosa da poco, e anche su una sola ambata la classifica mi darebbe un buon aiuto.
purtroppo con gli script sono una frana, ma da quel po' che capisco in merito credo si tratti di una istruzione-ciclo LOOP ( si dice cosi? ) che non so implementare nello script, e che faccia scorrere le 30000 costanti.
di poi inserire in Output anche la classifica delle migliori secondo max. percentuale d'esito.
credimi, se lo sapessi fare non ti disturberei, e scusami x l'ignoranza in materia-script.
 
L

LuigiB

Guest
per incrementare la variabile è semplicissimo si adopera un ciclo do come in questo esempio

Codice:
dim ka 
ka =0
do while ka <30
   ka = round(ka + 0.001 ,3)
   call scrivi (ka)
loop


all'interno del ciclo ad ogni passaggio ka cambia valore e percio il ciclo do deve stare all'esterno al suo interno invece devi mettere le istruzioni che hai postato nello script precedente.

Come ripeto voglio portarti a farlo da solo sto script visto che non sei proprio digiuno d'informatica
 

rudivall

Advanced Member >PLATINUM<
Luigi grazie mille, la cosa interessa molto anche a me, Halmun se me lo permetti vorrei partecipare anch'io sperando che con l'aiuto di Luigi riesca anch'io a capire il procedimento che bisogna eseguire per raggiungere il risultato da te esposto
 

Halmun

Advanced Member >PLATINUM<
grazie Luigi, provo ad inserirlo nello script ( non so dove, andrò a tentoni ) e vedo se mi funziona .

uelà, che sorpresa .... CIAO RUDY COME STAI? quanto tempo.... sono DendroAspys, è un pezzo che non ci sentiamo, come ti va? tutto OK?
:cool:
 
Ultima modifica:

Halmun

Advanced Member >PLATINUM<
x Rudy.
qui ho cambiato l'operatore ( da divisione a moltiplicazione ) su costanti estratte visivamente dal mio F.excel. sono 7 ambate x 9 C. ma le ho ridotte a 3 ( le migliori ) non male i ris.

Sub Main()
Dim ruote(10)
Dim numeri1(10)
Dim numeri2(10)
Dim poste(5)
Dim posta(5)
poste(1) = 1
poste(2) = 0
poste(3) = 0
poste(4) = 0
poste(5) = 0


'Variabili - Kf copre i casi 00 di Kd + Ke = 96,2 % ( 3 Ambate ) agg. al 20/09/2012
ka = 06.725
kb = 10.748
kc = 19.241
kd = 05.988
ke = 23.671
kf = 04.450

ruote(1) = 1

For n = 7301 To EstrazioneFin
If IndiceMensile(n + 1) = 1 Then

'numeri1(1) = Fuori90(Int(Estratto(n,1,1)*ka))
'numeri1(2) = Fuori90(Int(Estratto(n,1,2)*kb))
'numeri1(3) = Fuori90(Int(Estratto(n,1,3)*kc))
numeri1(4) = Fuori90(Int(Estratto(n,1,4)*kd))
numeri1(5) = Fuori90(Int(Estratto(n,1,5)*ke))
numeri1(6) = Fuori90(Int(Estratto(n,1,4)*kf))
'numeri1(7) = Vert(Fuori90(Int(Estratto(n,1,4)*kd)))

ImpostaGiocata 1,numeri1,ruote,poste,9,1

Gioca n
End If
Next
ScriviResoconto
End Sub

-----------------

se attivi anche l'ambata KC ( in tutto 4 ambate in gioco ) la percentuale si attesta sul 99%.
 
Ultima modifica:
L

LuigiB

Guest
ciao questo script forse potrebbe andarti bene , in pratica scegliendo ruota ,posizione e range da analizzare ottiene per ogni estrazione del range un numero da giocare per 9 colpi successivi, il numero è ottenuto attraverso le operazioni di addizione/sottrazione/divisione/moltiplicazione usando come valori per l'operazione scelta il numero letto dall'estrazione nella posizione prevista e il valore ottenuto da una variabile che parte da 0 e arriva a 30 con incremento di 0.001.
Per ogni costante memorizza le giocate vincenti e alla fine nell'output fa vedere le prime 100 costanti con piu vincite.
la velocita dello script varia in funzione del computer sul quale opera e soprattutto in funzione di quante estrazioni vengono analizzate nel range Infatti considerato che per ogni estrazione si deve ottenere un numero da giocare attraverso una delle 4 operazioni possibili tra il numero corrente e quello della costante che varia per 30000 volte avremmo che se le estrazioni del range fossero 10 le operazioni totali sarebbero 300000 se fossero 100 ovviamente 3000000 il tutto moltiplicato per i 9 colpi da analizzare ...

ecco lo script

Codice:
Option Explicit
Class clsCostante
	Dim C
	Dim Vincenti
	Dim Giocate
End Class
Sub Main
	Dim idEstr,Ruota,Colpi
	Dim Inizio,Fine,nFatte
	Dim Pos,c
	Dim aContenitCostanti(100)
	Dim TipoOp
	Dim NumGiocato
	Dim clsK
	Dim aNumeri(1)
	Dim aRuote(1)
	Dim aPosizioni(1)
	Inizio = EstrazioneIni
	Fine = EstrazioneFin
	Ruota = ScegliRuota
	Pos = Int(InputBox("Posizione estrazionale da 1 a 5 ",,1))
	TipoOp = InputBox("Tipo operazione + - * /",,"/")
	Colpi = 9
	
	c = 0
	Set clsK = New clsCostante
	If Ruota > 0 And GetTipoOp(TipoOp) <> "" Then
		Call InitArrayContenitore(aContenitCostanti)
		c = 0
		Do While c <= 30
			clsK.c = c
			clsK.Vincenti = 0
			clsK.Giocate = 0
			For idEstr = Inizio To Fine
				Call Messaggio("Estrazione : " & idEstr & " C = " & c)
				Select Case TipoOp
				Case "*" ' moltiplicazione
					NumGiocato = Fuori90(Int(Estratto(idEstr,Ruota,Pos)* c))
				Case "/" ' divisione
					
					NumGiocato = Fuori90(Dividi(Estratto(idEstr,Ruota,Pos),c))

				Case "-" ' sottrazione
					NumGiocato = Fuori90(Int(Estratto(idEstr,Ruota,Pos) - c))
				Case "+" ' addizione
					NumGiocato = Fuori90(Int(Estratto(idEstr,Ruota,Pos) + c))
				Case Else
					NumGiocato = 0
				End Select
				If NumGiocato > 0 Then
					clsK.Giocate = clsK.Giocate + 1
					aNumeri(1) = NumGiocato
					aRuote(1) = Ruota
					aPosizioni(1) = Pos
					If VerificaEsito(aNumeri,aRuote,idEstr + 1,1,Colpi,aPosizioni) Then
						clsK.Vincenti = clsK.Vincenti + 1
					End If
				End If
				If ScriptInterrotto Then Exit For
			Next
			Call MemorizzaNuovaCostanteTraLePrimeX(aContenitCostanti,clsK)
			c = Round(c + 0.001,3)
			If ScriptInterrotto Then Exit Do
			nFatte = nFatte + 1
			Call AvanzamentoElab(0,30000,nFatte)
		Loop
		
		Call GestioneOutput(Inizio,Fine,Pos,Ruota,TipoOp,aContenitCostanti)

	End If
End Sub
Sub InitArrayContenitore(aContenitCostanti)
	Dim k
	For k = 1 To UBound(aContenitCostanti)
		Set aContenitCostanti(k) = New clsCostante
	Next
End Sub
Sub MemorizzaNuovaCostanteTraLePrimeX(aContenitCostanti,clsK)
	Dim k,kk
	
	For k = 1 To UBound(aContenitCostanti)
		If clsK.Vincenti >= aContenitCostanti(k).Vincenti Then
			
				For kk = UBound(aContenitCostanti) To k + 1 Step - 1
					aContenitCostanti(kk).c = aContenitCostanti(kk - 1).c
					aContenitCostanti(kk).Vincenti = aContenitCostanti(kk - 1).Vincenti
					aContenitCostanti(kk).Giocate = aContenitCostanti(kk - 1).Giocate
				Next
				aContenitCostanti(k).c = clsK.c
				aContenitCostanti(k).Vincenti = clsK.Vincenti
				aContenitCostanti(k).Giocate = clsK.Giocate
				Exit For
				
		End If
	Next
End Sub
Sub GestioneOutput(inizio,fine,pos,ruota,tipoOp,aContenitCostanti)
	
	Dim k
	
	Call Scrivi("Analisi delle costanti da 0 a 30 passo 0.001")
	Call Scrivi("Data Da : " & GetInfoEstrazione(inizio))
	Call Scrivi("Data A  : " & GetInfoEstrazione(fine))
	Call Scrivi("Ruota   : " & NomeRuota(ruota))
	Call Scrivi("Posiz.  : " & pos)
	Call Scrivi("TipoOp  : " & GetTipoOp(tipoOp))
	
	
	
	
	ReDim aV(4)
	aV(1) = "Costante"
	aV(2) = "Vincenti"
	aV(3) = "Giocate"
	aV(4) = "Percentuale"
	
	Call InitTabella(aV)
	
	For k = 1 To UBound(aContenitCostanti)
		aV(1) = aContenitCostanti(k).c
		aV(2) = aContenitCostanti(k).vincenti
		aV(3) = aContenitCostanti(k).Giocate
		aV(4) = Round(ProporzioneX(aV(2),aV(3),100),3) & " %"
		Call AddRigaTabella(aV)
	Next
	
	Call CreaTabella
	
End Sub
Function GetTipoOp(tipoOp)
	
	Select Case tipoOp
	Case "*" ' moltiplicazione
		GetTipoOp = "Moltiplicazione"
	Case "/" ' divisione
		GetTipoOp = "Divisione"
	Case "-" ' sottrazione
		GetTipoOp = "Sottrazione"
	Case "+" ' addizione
		GetTipoOp = "Addizione"
	Case Else
		GetTipoOp = ""
		
	End Select
	
End Function
 

Halmun

Advanced Member >PLATINUM<
GRANDEEEEE .... LUIGI......GRANDE.
non ho parole x Ringraziarti, tutti e 4 gli operatori a scelta, piu' di cosi......
stavo facendo adesso alcune prove e ho arrestato la scansione quasi subito a 0,061 e già mi ha dato con l'operatore / sulla costante 0,059 il 10,373% dal 1871 sul primo estratto.
ora devo solo capire nel codice dove impostare il range desiderato, sono sicuro che verranno fuori ottime prev.
vado a studiarmelo.
GRAZIE ANCORA LUIGI.

NP:
RAGAZZI SCARICATEVELO, prima che per qualche motivo vada perso.
 

rudivall

Advanced Member >PLATINUM<
Grazie mille Luigi, dai sempre di più, sei una persona veramente squisita grazie ancora, anche se forse avrei preferito iniziare dalla tua base e poi arrivarci insieme, ma capisco che ci sarebbe voluto un bel pò di tempo ti dò un grande abbraccio virtuale.
Ciao Dario il range delle estrazioni lo puoi impostare dalla barra delle estrazioni in basso al programma di Luigi Spaziometria
 

Halmun

Advanced Member >PLATINUM<
ah ok Rudy, quindi se voglio cambiare range devo configurare l'archivio di spaziometria ? es: 100 estraz. 150 estraz e cosi via.....giusto?
pensavo invece che si potesse impostare il range modificando un parametro dello script per fargli leggere solo ( ad esempio ) le ultime 100 estraz.
certo, sarebbe meglio un input-box per la scelta del Range, come quello x la scelta della ruota, ma va benissimo anche cosi.
x i piu interessati; se volete velocizzare il tutto restringete il passo 0,001 magari impostandolo a 0,01 oppure a 0,1 modificabili direttamente nello script.
ottimo script cmq. RI-RINGRAZIO ancora Luigi.
 
L

LuigiB

Guest
esatto , ha ragione rudival , non si deve modificare nulla nello script , per cambiare range basta cambiare il range nel programma stesso (si vede nella barra rosa in basso e si puo impostare con i pulsantini che sono presenti) ...

i10493_Range.JPG

ciao
 
Ultima modifica di un moderatore:

Halmun

Advanced Member >PLATINUM<
grazie ragazzi, lo sto gia facendo girare sulle ultime 300 estraz. di Bari ( 1° E. ) passo 0,001 operat. / e dopo quasi 10min. sono a metà strada, quindi i tempi non sono poi cosi proibitivi.
lo fai partire e nel frattempo fai altro.
:cool:
 

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

Ultimi Messaggi

Alto