Novità

Combinazioni piu rappresentative X LUIGIB

edesimone

Advanced Member >PLATINUM<
Buona sera Luigib
Volevo chiederti sulle Combinazioni piu rappresentative in questo caso per il 10elotto,
facendo uno sviluppo in classe 4 con analizza punti 3, mettendo il range inizio 21/06/2005 ad 28/04/2012 e mettendo il filtro su tutti i mesi lasciando solo maggio,
il calcolatore mi sviluppa delle quartine con frequenza di uscita 11,10,9,8 ecc, ripetendo con il tasto esegui,mi trova diverse quartine
dalla prime sviluppate con frequenza 13,12,10,9 ecc, ogni volta che lancio esegui cambiano le quartine, volevo sapere se potevi far
qualcosa per questo inconveniente (tutte queste analisi le faccio con il metodo ricerca approfondita).
Poi volevo sapere se le Combinazioni più rappresentative puoi metterle anche per il lotto (dentro la tabella statistiche).
Grazie
 
Ultima modifica:
L

LuigiB

Guest
non è un inconveniente è fatto cosi . l'algoritmo non è di tipo esaustivo
 

edesimone

Advanced Member >PLATINUM<
Grazie, speravo in una ricerca superapprofondita, fatte delle verifiche mi sono ritrovato delle quaterne,naturalmente
con i parametri sopra esposti con frequenza superiore a 22.
Nel programma c'è una postilla dove si dice che potrebbero esistere realmente combinazioni con valori leggermente
più alti.
Luigib questo è uno script fatto da te, volevo chiederti di fare una modifica,praticamente mi deve dare la possibilità
di scegliere il mese da elaborare.
Esempio inizio range 14/09/46 al 28/04/2012 da qui mi deve calcolare solo il mese di maggio.
Naturalmente se fattibile


Option Explicit
Sub Main


Dim nClasse
Dim nGaranzia
Dim k,j
Dim sNumeri
Dim idComb
Dim nInizio,nFine
Dim idValoreDaAna
Dim sValoreUsato
Dim CombTot

ReDim aCombMigliori(100,4)

nClasse = ScegliClasse
nGaranzia = ScegliGaranzia
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)

nInizio = EstrazioneIni
nFine = EstrazioneFin



If nClasse > 0 And nGaranzia > 0 And nGaranzia <= nClasse And idValoreDaAna > 0 Then
Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
CombTot = InitSviluppaComb(nClasse)

Call Messaggio("Statistica combinazioni in corso ")
ReDim aCol(nClasse)
Do While GetCombSviluppo(aCol) = True
Call AnalisiComb(aCol,nGaranzia,aCombMigliori,nInizio,nFine,idValoreDaAna)
k = k + 1
If k Mod 20 = 0 Then
Call Messaggio("Statistica combinazioni in corso " & k & " di " & CombTot)

Call AvanzamentoElab(1,CombTot,k)

If ScriptInterrotto Then Exit Do
End If
Loop
Call Messaggio("")

ReDim aTitoli(4)
aTitoli(1) = "Combinazione"
aTitoli(2) = "Frequenza"
aTitoli(3) = "Ritardo"
aTitoli(4) = "RitardoMax"


Call Scrivi("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia)
Call Scrivi("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato)
Call Scrivi("Range analizzato " & GetInfoEstrazioneDL(nInizio) & " fino a " & GetInfoEstrazioneDL(nFine))
Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
Call Scrivi



Call InitTabella(aTitoli)

For k = 1 To UBound(aCombMigliori)


ReDim ADati(4)
ADati(1) = aCombMigliori(k,4)
ADati(2) = aCombMigliori(k,1)
ADati(3) = aCombMigliori(k,2)
ADati(4) = aCombMigliori(k,3)

Call AddRigaTabella(ADati)

Next

Call CreaTabella

Else
MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime 100 Combinazioni "



End If

End Sub
Sub AnalisiComb(aNum,Garanzia,aCombMig,nInizio,nFine,idValoreDaAna)

Dim k,j

Dim Rit
Dim RitMax
Dim Freq
Dim Valore




Call StatisticaFormazioneDL(aNum,Garanzia,Rit,RitMax,0,Freq,nInizio,nFine)
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To UBound(aCombMig)

If Valore >= aCombMig(k,0) Then

For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)


Next
aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = StringaNumeri(aNum)


Exit For

End If
Next
End Sub
Function InitSviluppaComb(Classe)

Dim k
ReDim aNum(90)

For k = 1 To 90
aNum(k) = k
Next

InitSviluppaComb = InitSviluppoIntegrale(aNum,Classe)

End Function

Function ScegliClasse()
ReDim aVoci(4)

aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"


ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function

Function ScegliGaranzia()

ReDim aVoci(4)

aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"
aVoci(4) = "Cinquina"

ScegliGaranzia = ScegliOpzioneMenu(aVoci,2,"Secegli garanzia") + 1
End Function

Function ScegliValoreDaAnalizzare(sValore)

ReDim aVoci(2)
Dim i

aVoci(0) = "Frequenza"
aVoci(1) = "Ritardo"
aVoci(2) = "Ritardo massimo"



i = ScegliOpzioneMenu(aVoci,0,"Quale valore considerare per l'ordinamento ? ")
sValore = aVoci(i)
ScegliValoreDaAnalizzare = i + 1
End Function

Grazie
 
L

LuigiB

Guest
Codice:
Option Explicit
Sub Main
	Dim nClasse
	Dim nGaranzia
	Dim k,j
	Dim sNumeri
	Dim idComb
	Dim nInizio,nFine
	Dim idValoreDaAna
	Dim sValoreUsato
	Dim CombTot
	Dim nMese 
	Dim nAnaTot
	
	nMese =Int(InputBox("Mese da 1 a 12" ,,1))
	ReDim aCombMigliori(100,4)
	nClasse = ScegliClasse
	nGaranzia = ScegliGaranzia
	idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)
	nInizio = EstrazioneIni
	nFine = EstrazioneFin
	
	nAnaTot = 0
	For k = nInizio To nFine	
		If Month( DataEstrazioneDL(k,,,"/")) = nMese Then
			Call ImpostaEstrazioneDL (k,True)
			nAnaTot = nAnaTot +1
		Else
			Call ImpostaEstrazioneDL (k,False)
		End If
	Next
	
	If nClasse > 0 And nGaranzia > 0 And nGaranzia <= nClasse And idValoreDaAna > 0 And nMese >0 And nMese <= 12 Then
		Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
		CombTot = InitSviluppaComb(nClasse)
		Call Messaggio("Statistica combinazioni in corso ")
		ReDim aCol(nClasse)
		Do While GetCombSviluppo(aCol) = True
			Call AnalisiComb(aCol,nGaranzia,aCombMigliori,nInizio,nFine,idValoreDaAna)
			k = k + 1
			If k Mod 20 = 0 Then
				Call Messaggio("Statistica combinazioni in corso " & k & " di " & CombTot)
				Call AvanzamentoElab(1,CombTot,k)
				If ScriptInterrotto Then Exit Do
			End If
		Loop
		Call Messaggio("")
		ReDim aTitoli(4)
		aTitoli(1) = "Combinazione"
		aTitoli(2) = "Frequenza"
		aTitoli(3) = "Ritardo"
		aTitoli(4) = "RitardoMax"
		Call Scrivi("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia)
		Call Scrivi("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato)
		Call Scrivi("Range analizzato " & GetInfoEstrazioneDL(nInizio) & " fino a " & GetInfoEstrazioneDL(nFine))
		'Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
		Call Scrivi("Mese analizzato              : " & nMese)
		Call Scrivi("Estrazioni analizzate totali : " & nAnaTot)
		

		Call Scrivi
		Call InitTabella(aTitoli)
		For k = 1 To UBound(aCombMigliori)
			ReDim ADati(4)
			ADati(1) = aCombMigliori(k,4)
			ADati(2) = aCombMigliori(k,1)
			ADati(3) = aCombMigliori(k,2)
			ADati(4) = aCombMigliori(k,3)
			Call AddRigaTabella(ADati)
		Next
		Call CreaTabella
	Else
		MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
		"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
		"e che bisogna scegliere quale valore statistico considerare per " & _
		"alimentare la lista delle prime 100 Combinazioni "
	End If
End Sub
Sub AnalisiComb(aNum,Garanzia,aCombMig,nInizio,nFine,idValoreDaAna)
	Dim k,j
	Dim Rit
	Dim RitMax
	Dim Freq
	Dim Valore
	Call StatisticaFormazioneDL(aNum,Garanzia,Rit,RitMax,0,Freq,nInizio,nFine)
	Select Case idValoreDaAna
	Case 1
		Valore = Freq
	Case 2
		Valore = Rit
	Case 3
		Valore = RitMax
	End Select
	For k = 1 To UBound(aCombMig)
		If Valore >= aCombMig(k,0) Then
			For j = UBound(aCombMig) To(k + 1) Step - 1
				aCombMig(j,0) = aCombMig(j - 1,0)
				aCombMig(j,1) = aCombMig(j - 1,1)
				aCombMig(j,2) = aCombMig(j - 1,2)
				aCombMig(j,3) = aCombMig(j - 1,3)
				aCombMig(j,4) = aCombMig(j - 1,4)
			Next
			aCombMig(k,0) = Valore
			aCombMig(k,1) = Freq
			aCombMig(k,2) = Rit
			aCombMig(k,3) = RitMax
			aCombMig(k,4) = StringaNumeri(aNum)
			Exit For
		End If
	Next
End Sub
Function InitSviluppaComb(Classe)
	Dim k
	ReDim aNum(90)
	For k = 1 To 90
		aNum(k) = k
	Next
	InitSviluppaComb = InitSviluppoIntegrale(aNum,Classe)
End Function
Function ScegliClasse()
	ReDim aVoci(4)
	aVoci(0) = "Estratto"
	aVoci(1) = "Ambo"
	aVoci(2) = "Terno"
	aVoci(3) = "Quaterna"
	aVoci(4) = "Cinquina"
	ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function
Function ScegliGaranzia()
	ReDim aVoci(4)
	aVoci(0) = "Estratto"
	aVoci(1) = "Ambo"
	aVoci(2) = "Terno"
	aVoci(3) = "Quaterna"
	aVoci(4) = "Cinquina"
	ScegliGaranzia = ScegliOpzioneMenu(aVoci,2,"Secegli garanzia") + 1
End Function
Function ScegliValoreDaAnalizzare(sValore)
	ReDim aVoci(2)
	Dim i
	aVoci(0) = "Frequenza"
	aVoci(1) = "Ritardo"
	aVoci(2) = "Ritardo massimo"
	i = ScegliOpzioneMenu(aVoci,0,"Quale valore considerare per l'ordinamento ? ")
	sValore = aVoci(i)
	ScegliValoreDaAnalizzare = i + 1
End Function
 

edesimone

Advanced Member >PLATINUM<
Luigib grazie per la modifica, purtroppo mi sono sbagliato il listato da modificare è questo.
Volevo segnalarti che lanciando questo script 10elotto per estratto con garanzia estratto più frequente mi da errore: sNumeri = sNumeri & Format2(aComb(idComb,j)) & "."
errore 9 - indice non incluso nell'intervallo IDComb, tutto il resto deve rimanere come ti avevo spiegato sopra.
Volevo segnare, mettendo inizio range 14/09/46 al 28/04/2012 da qui mi deve calcolare solo i mesi di maggio dei vari anni, lanciando il programma l'elaborazione del mese deve partire dal 01/05/47 dal momento
che l'inizio range è 14/09/46 non 01/05/46,
Grazie della pazienza e auguri per il 1° Maggio.



Sub Main

Dim aComb
Dim nClasse
Dim nGaranzia
Dim k,j
Dim sNumeri
Dim idComb
Dim nInizio,nFine
Dim idValoreDaAna
Dim sValoreUsato
Dim TipoArchivio


ReDim aCombMigliori(100,4)

TipoArchivio = ScegliArchivio
nClasse = ScegliClasse
nGaranzia = ScegliGaranzia
idValoreDaAna = ScegliValoreDaAnalizzare(sValoreUsato)


Call ImpostaArchivio10ELotto(TipoArchivio)


nFine = EstrazioniArchivioDL
nInizio = nFine - 500



If nClasse > 0 And nGaranzia > 0 And nGaranzia <= nClasse And idValoreDaAna > 0 Then
Call Messaggio("Sviluppo combinazioni di classe " & nClasse)
Call SviluppaComb(aComb,nClasse)
Call Messaggio("Statistica combinazioni in corso ")

For k = 1 To UBound(aComb)
Call AnalisiComb(aComb,k,nClasse,nGaranzia,aCombMigliori,nInizio,nFine,idValoreDaAna)
If k Mod 20 = 0 Then
Call Messaggio("Statistica combinazioni in corso " & k)

Call AvanzamentoElab(1,UBound(aComb),k)
If ScriptInterrotto Then Exit For
End If
Next
Call Messaggio("")

ReDim aTitoli(4)
aTitoli(1) = "Combinazione"
aTitoli(2) = "Frequenza"
aTitoli(3) = "Ritardo"
aTitoli(4) = "RitardoMax"



Call Scrivi("Archivio " & Iif(TipoArchivio = 1,"10 e lotto","10 e lotto 5 minuti"))
Call Scrivi("Combinazioni di classe " & nClasse & " analizzate per punti " & nGaranzia)
Call Scrivi("La seguente lista mostra le prime 100 combinazioni in base al valore di " & sValoreUsato)
Call Scrivi("Range analizzato " & GetInfoEstrazioneDL(nInizio) & " fino a " & GetInfoEstrazioneDL(nFine))
Call Scrivi("Estrazioni analizzate totali : " &(nFine + 1) - nInizio)
Call Scrivi



Call InitTabella(aTitoli)

For k = 1 To UBound(aCombMigliori)
sNumeri = ""
idComb = aCombMigliori(k,4)
For j = 1 To nClasse
sNumeri = sNumeri & Format2(aComb(idComb,j)) & "."
Next

ReDim ADati(4)
ADati(1) = Left(sNumeri,Len(sNumeri) - 1)
ADati(2) = aCombMigliori(k,1)
ADati(3) = aCombMigliori(k,2)
ADati(4) = aCombMigliori(k,3)

Call AddRigaTabella(ADati)

Next

Call CreaTabella

Else
MsgBox "Selezionare la classe di sviluppo e la garanzia , " & _
"si ricorda che la garanzia non puo essere maggiore della classe di sviluppo " & _
"e che bisogna scegliere quale valore statistico considerare per " & _
"alimentare la lista delle prime 100 Combinazioni "



End If

End Sub
Sub AnalisiComb(aComb,idComb,nClasse,Garanzia,aCombMig,nInizio,nFine,idValoreDaAna)

Dim k,j
ReDim aNum(nClasse)
Dim Rit
Dim RitMax
Dim Freq
Dim Valore


For k = 1 To nClasse
aNum(k) = aComb(idComb,k)
Next

Call StatisticaFormazioneDL(aNum,Garanzia,Rit,RitMax,0,Freq,nInizio,nFine)
Select Case idValoreDaAna
Case 1
Valore = Freq
Case 2
Valore = Rit
Case 3
Valore = RitMax
End Select
For k = 1 To 90'UBound(aCombMig)

If Valore >= aCombMig(k,0) Then

For j = UBound(aCombMig) To(k + 1) Step - 1
aCombMig(j,0) = aCombMig(j - 1,0)
aCombMig(j,1) = aCombMig(j - 1,1)
aCombMig(j,2) = aCombMig(j - 1,2)
aCombMig(j,3) = aCombMig(j - 1,3)
aCombMig(j,4) = aCombMig(j - 1,4)

Next
aCombMig(k,0) = Valore
aCombMig(k,1) = Freq
aCombMig(k,2) = Rit
aCombMig(k,3) = RitMax
aCombMig(k,4) = idComb

Exit For

End If
Next
End Sub
Sub SviluppaComb(aComb,Classe)

Dim k
ReDim aNum(90)

For k = 1 To 90
aNum(k) = k
Next

aComb = SviluppoIntegrale(aNum,Classe)

End Sub

Function ScegliClasse()
ReDim aVoci(3)

aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"


ScegliClasse = ScegliOpzioneMenu(aVoci,2,"Secegli tipo combinazione") + 1
End Function

Function ScegliGaranzia()

ReDim aVoci(3)

aVoci(0) = "Estratto"
aVoci(1) = "Ambo"
aVoci(2) = "Terno"
aVoci(3) = "Quaterna"


ScegliGaranzia = ScegliOpzioneMenu(aVoci,2,"Secegli garanzia") + 1
End Function

Function ScegliValoreDaAnalizzare(sValore)

ReDim aVoci(2)
Dim i

aVoci(0) = "Frequenza"
aVoci(1) = "Ritardo"
aVoci(2) = "Ritardo massimo"



i = ScegliOpzioneMenu(aVoci,0,"Quale valore considerare per l'ordinamento ? ")
sValore = aVoci(i)
ScegliValoreDaAnalizzare = i + 1
End Function

Function ScegliArchivio()

ReDim aVoci(1)

aVoci(0) = "10 e lotto"
aVoci(1) = "10 e lotto 5 min"


ScegliArchivio = ScegliOpzioneMenu(aVoci,0,"Secegli aechivio") + 1
End Function
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 23 aprile 2024
    Bari
    47
    22
    34
    20
    50
    Cagliari
    33
    14
    86
    02
    62
    Firenze
    61
    22
    44
    19
    26
    Genova
    21
    12
    57
    82
    55
    Milano
    66
    05
    11
    70
    30
    Napoli
    05
    23
    25
    52
    73
    Palermo
    23
    44
    49
    71
    65
    Roma
    82
    37
    59
    34
    71
    Torino
    26
    42
    66
    15
    58
    Venezia
    57
    06
    68
    54
    84
    Nazionale
    21
    79
    49
    03
    01
    Estrazione Simbolotto
    Genova
    24
    02
    19
    03
    27

Ultimi Messaggi

Alto