Novità

combinazioni quartine in decina naturale

  • Creatore Discussione Creatore Discussione genios
  • Data di inizio Data di inizio
Ok ...

Ciao Eugenio. Bene.

Come vedi nella ultima versione dello script ho aggiunto un pò di comandi ... vecchi e nuovi del Basic.

Sicchè chi vorrà potrà trovare parecchie cosette utili.

Va detto e sottolineato, che il buon Luigi ha fornito anche molti parametri specifici per l'istruzione Scrivi.

Essi sono attivabili con "Iif" e rendono questa istruzione tra le "più potenti" e/o di livello più alto

tra le varie versioni dei dialetti basic a nostra disposizione.

Poi ci sarebbe tutto il set di istruzioni appositamente dedicate alla formazione di tabelle ...

... recentemente rese anche "ordinabili" nelle varie colonne.

Cosa che spesso e volentieri Mike ha fatto e dimostrato possibile

soddisfacendo le varie richieste, che gli sono pervenute.

:) Buona Giornata a tutte/i.
 
Ultima modifica:
Ciao Joe grazie !

Le tue lezioni sono sempre utilissime ma sopratutto essenziali.

simplyawesomeaward-1.jpg


Ciao a Tutti.
:)
 
Ultima modifica:
Mi inserisco anch'io per ringraziare Joe91 per il lavoro e per le informazioni messe passo passo nella costruzione dello script. ehhh, il Basic... da ragazzino avevo anche fatto un corso... purtroppo è finito tutto nel dimenticatoio e i due neuroni rimasti ora faticano un po' a starvi dietro ma è sempre bello seguirvi. dopo un anno e mezzo di post sono ormai quasi autonomo nel crearmi quallo che mi serve (senza tanti fronzoli è!) ma partire da 0 mi terrorizza...
Per esempio ora sto lavorando su questo script che mi piace e l'ho semplicemente trasformato per quartine in cadenza e nel trasformarlo ancora per le figure mi dava un errore che rileggendo tutto il topic ho risolto!!
Grazie quindi a genios per l'idea di partenza e a Joe91 per la paziente scuola che ci ha fatto oltre che, come faccio sempre, un grazie di cuore a LuigiB per il regalo + grande...
Buona giornata a tutti

PS un grazie anche a i legend che ho seguito in alcuni suoi lavori anche se un po' complicati per me e a tutti gli altri bravissimi scripters che ci sono qui su Lottoced
 
Ultima modifica:
Va detto e sottolineato, che il buon Luigi ha fornito anche molti parametri specifici per l'istruzione Scrivi.

Essi sono attivabili con "Iif" e rendono questa istruzione tra le "più potenti" e/o di livello più alto

tra le varie versioni dei dialetti basic a nostra disposizione.

Poi ci sarebbe tutto il set di istruzioni appositamente dedicate alla formazione di tabelle ...

... recentemente rese anche "ordinabili" nelle varie colonne.

Joe91 ritornando sul comando “ scrivi “ che stampa le variabili che vogliamo sullo schermo ti chiedo quali sono i caratteri grafici che possono esser usati in questo comando . Potresti fare qualche esempio anche di tabelle .

E fare qualche esempio con l' istruzione " Iif "

Ciao Eugenio
 
Ultima modifica:
Joe91 mi sto impantanando nel pezzo di codice del tuo script in basso potresti mettere il comando script nelle variabili Dn K P per vedere cosa succede in out.



Option Explicit
Sub Main
Dim DN,K,P


DN = 5

For K = 1 To 90
If DecinaNaturale(K) = DN Then
P = P + 1
ReDim Preserve Numeri(P)
Numeri(P) = K
End If
Next
Scrivi StringaNumeri(Numeri)
End Sub
 
Ultima modifica:
Ciao a tutti!
Solo adesso vedo anche perchè il titolo è fuorviante, a momenti me lo perdevo.
Grazie Joe, ne approfitto per chiederti in quale script degli esempi posso trovare come ricavare da 5 numeri qualsiasi le 120 combinazioni possibili.
 
Ultima modifica:
Non so se è giusto.


Codice:
Option Explicit
Sub Main
	Dim DN,K,P
	

	DN = 5
	
	For K = 1 To 90
		If DecinaNaturale(K) = DN Then
		Scrivi K
			P = P + 1
			Scrivi P
			ReDim Preserve Numeri(P)
			Numeri(P) = K
		End If
	Next
	Scrivi StringaNumeri(Numeri)
End Sub

P 1 2 3 4 5 6 7 8 9 10
K 51 52 53 54 55 56 57 58 59 60







K=51 PRIMO NUMERO DELLA DECINA 5
P=1 NELL’ INDICE P1 DELLA VARIABILE P VIENE MESSO IL N°51
K=52 SECONDO NUMERO DELLA DECINA 5
P=2 NELL’ INDICE P2 DELLA VARIABILE P VIENE MESSO IL N°52
53 TERZO NUMERO DELLA DECINA 5
P=3 NELL’ INDICE P3 DELLA VARIABILE P VIENE MESSO IL N°53
54 E COSI VIA
4
55
5
56
6
57
7
58
8
59
9
60
10
51.52.53.54.55.56.57.58.59.60 STRINGA NUMERI
 
Non so se è giusto.


Codice:
Option Explicit
Sub Main
	Dim DN,K,P
	

	DN = 5
	
	For K = 1 To 90
		If DecinaNaturale(K) = DN Then
		Scrivi K
			P = P + 1
			Scrivi P
			ReDim Preserve Numeri(P)
			Numeri(P) = K
		End If
	Next
	Scrivi StringaNumeri(Numeri)
End Sub

Codice:
P	1	2	3	4	5	6	7	8	9	10	
K	51	52	53	54	55	56	57	58	59	60






K=51 PRIMO NUMERO DELLA DECINA 5
P=1 NELL’ INDICE P1 DELLA VARIABILE P VIENE MESSO IL N°51
K=52 SECONDO NUMERO DELLA DECINA 5
P=2 NELL’ INDICE P2 DELLA VARIABILE P VIENE MESSO IL N°52
53 TERZO NUMERO DELLA DECINA 5
P=3 NELL’ INDICE P3 DELLA VARIABILE P VIENE MESSO IL N°53
54 E COSI VIA
4
55
5
56
6
57
7
58
8
59
9
60
10
51.52.53.54.55.56.57.58.59.60 STRINGA NUMERI

Ciao Eugenio

Si, mi sembra corretta l'interpretazione che hai fornito.

E' vero tuttavia che tra quanto avevo descritto ... e quello chè è lo script nella versione finale ...

di cui hai postato una parte ci sono differenze.

La Dimensione di un vettore/contenitore/array può essere FISSA

2 ad esempio fossero numeri per Ambo / 3 per Terno / e 10 per una Decina ...

La si rende FISSA con DIM Nome (numero di elementi) ...

Oppure la dimensione può essere "dinamica" o variabile ...

nel senso che potremmo non sapere a priori quanti elementi ci saranno.

Faccio un esempio lottologico semplice.

Gli elementi da memorizzare ... sono tanti quanti i numeri che oggi, a Bari, hanno un ritardo maggiore di 50 Estrazioni.

Chiaro che, su due piedi, non sappiamo come dimensionare ... il nostro contenitore.

Quindi ne creiamo uno vuoto e ridimensionabile con Redim Rit_Magg_50 (0) ... (cioè con "zero" elementi)

Poi scorrendo i 90 estratti ... se uno di questi ... ha il suo ritardo maggiore di 50

Ridimensioniamo il contenitore per "un Posto in più" Preservando i contenuti precedentemente raccolti ...

perchè altrimenti andrebbero cancellati dal ridimensionamento.

P = P + 1

Redim Preserve Rit_Magg_50 (P)

Rit_Magg_50 (P) = "Numero ritardatario oltre il limite"

Al termine del confronto dei 90 ritardi avremo un Array ... con i numeri da noi voluti.

:)
 
Ultima modifica:
Lo script dimostrativo potrebbe essere :

Codice:
Option Explicit
Sub Main
	Dim R,N,Fin,Rif,Rit,P
	ReDim Num(0)
	R = BA_
	Fin = EstrazioneFin
	Rif = 50
	For N = 1 To 90
		Rit = RitardoEstratto(N,Fin,R)
		If Rit > Rif Then
			P = P + 1
			ReDim Preserve Num(P)
			Num(P) = N
		End If
	Next
	Scrivi StringaNumeri(Num,,True)
End Sub

Con l'occasione un saluto ed il mio grazie a tutte/i Voi.
 
Grazie Joe, Finalmente ho messo ordine mentale alla Redim Preserve ( forse sono riuscito a memorizzarla).
Partecipo con questo script.

Codice:
Sub Main
	Dim ru(1),nu(1)
	rit = CInt(InputBox("Quale ritardo superiore a ? ",,54))
	Ini = EstrazioneIni
	fin = EstrazioneFin - 1
	Scrivi "Lezione Redim Preserve By Joe91 - Studio Mike58 "
	Scrivi
	Scrivi "Dati Filtrati al Ritardo Superiore a  :" & rit,1
	Scrivi
	For r = 1 To 12
		If r = 11 Then r = 12
		ru(1) = r
		For x = 1 To 90
			nu(1) = x
			If SerieRitardo(Ini,fin,nu,ru,1) > rit Then
				k = k + 1
				ReDim Preserve magg(k)
				magg(k) = x
				Call VerificaEsito(magg,ru,EstrazioneFin,1,1,,,,estratti)
			End If
			er = EstrattoRitardo(r,x,Ini,fin)
			If er > rit Then
				kk = kk + 1
				ReDim Preserve magx(kk)
				magx(kk) = er
				et = QuantitaTeoricaCombMagUgAlRitX(er,1,1,1)
			End If
		Next
		Scrivi "Ruota           : " & NomeRuota(r),1,,,1,,,1
		Scrivi "Numeri          : " & StringaNumeri(magg," ",1)
		Scrivi "Ritardo         : " & StringaNumeri(magx," ",1)
		Scrivi "% Q.tà  teorica : " & Round(et,3)
		If k - et > 0 Then
			Scrivi "Scompenso   : " & Round((k - et),3),1,,,2,3,,1
		Else
			Scrivi "Scompenso   : " & Round((k - et),3),1,,,0,3,,1
		End If
		Scrivi "Esito           : " & estratti
		Scrivi
		k = 0
		kk = 0
	Next
End Sub
 
Lo script dimostrativo potrebbe essere :

Codice:
Option Explicit
Sub Main
	Dim R,N,Fin,Rif,Rit,P
	ReDim Num(0)
	R = BA_
	Fin = EstrazioneFin
	Rif = 50
	For N = 1 To 90
		Rit = RitardoEstratto(N,Fin,R)
		If Rit > Rif Then
			P = P + 1
			ReDim Preserve Num(P)
			Num(P) = N
		End If
	Next
	Scrivi StringaNumeri(Num,,True)
End Sub

Con l'occasione un saluto ed il mio grazie a tutte/i Voi.

Ottima ari-Grazie
 
Ciao Mike ho dato un occhiata al tuo script molto interessante.
Ho notato che inserendo il valore del ritardo lo script mi restituisce il risultato, ma mi è venuto un dubbio.
per quantita teorica immagino ti riferisci alla quantita numerica che dovrebbe essere presente dopo un certo ritardo. se ho capito bene
questa non puo cambiare da ruota a ruota,ma dovrebbe essere sempre uguale cambiera solo lo scarto tra la quantita reale e la quantita teorica.
se non ho capito ti chiedo scusa....
credo che su spazio non ci si sia e il tuo script torna utile:)
ciao buona giornata a tutti:)
 
Ciao I Legend, intanto ti saluto con piacere, alla tua domando non ho una risposta precisa, ho solo applicato il codice e secondo me dovrebbe calcolare secondo la formula + volte citata nei vari post di statistica la q.tà dei numeri teorici che dovrebbero trovarsi dal ritardo minimo rilevato e che invece sono presenti.

Quindi il calcolo varia a secondo della presenza effettiva sulle varie ruote.

il codice dice questo :

QuantitaTeoricaCombMagUgAlRitX

QuantitaTeoricaCombMagUgAlRitX(nRitardo, Optional nClasse = 1, Optional nRuote = 1, Optional nEvento = 1)

Note :

Attraverso una formula matematica calcola i numeri che dovrebbero ancora trovarsi maggiori o uguali al ritardo specificato

Valore di ritorno :

Quantita teorica delle combinazioni di classe nClasse per la sorte nEvento

mentre diverso è :
QuantitaTeoricaCombAlRitX

QuantitaTeoricaCombAlRitX(nRitardo, Optional nClasse = 1, Optional nRuote = 1, Optional nEvento = 1)

Note:

Attraverso una formula matematica calcola i numeri che dovrebbero ancora trovarsi al ritardo specificato

Valore di ritorno :

Quantita teorica delle combinazioni di classe nClasse per la sorte nEvento


sono sicuro che saprai apportare migliorie per un miglior utilizzo.

Io lo ho chiamato scompenso, ma forse come dici tu è meglio chiamarlo scarto.
 
Ultima modifica:
Ciao Mike , c'era un piccolo errore nella formula,ho utilizzato il tuo script e messo in tabella , potresti controllare se i risultati sono corretti?
Mike perche hai fatto due cicli? ho visto che azzeri k ekk alla fine, io ci ho provato ma la matrice mi caricava tutti i numeri di tutte le ruote...
Ho ancora tanto da studiare:)
Ecco lo script ma c'e un bug :)
Codice:
Option Explicit
Sub Main
' c'e un bug non so se ho modificato qualcosa dallo script originale
    Dim ru(1),nu(1)
    Dim R,X,K,KK,ER,Et,Estratti
    Dim Rit ,i,scarto
    Dim Ini,Fin    
    Dim aTitolo
    
    Rit = CInt(InputBox("Quale ritardo superiore a ? ",,53))
    Ini = EstrazioneIni
    Fin = EstrazioneFin 
    aTitolo=Array("","Ruote   ","Estratti","PreReali","Ritardi","Scompenso")
    Call InitTabella(aTitolo,RGB(234,234,255),0,3,1) 
    Scrivi "Lezione Redim Preserve By Joe91 - Studio Mike58 "
    Scrivi
    Scrivi "Dati Filtrati al Ritardo Superiore a  :" & Rit,1
    Scrivi
    For R = 1 To 12
        If R = 11 Then R = 12
        ru(1) = R
        For X = 1 To 90
            nu(1) = X
            
            If SerieRitardo(Ini,Fin,nu,ru,1) > Rit Then
                K = K + 1
                ReDim Preserve magg(K)
                magg(K) = X
                Call VerificaEsito(magg,ru,EstrazioneFin,1,1,,,,Estratti)
            End If
            ER = EstrattoRitardo(R,X,Ini,Fin)
            
            If ER > Rit Then
                KK = KK + 1
                ReDim Preserve magx(KK)
                magx(KK) = ER
                End If
                            
        Next
        K=0
        KK=0        
        ReDim aRis(5)
        For i= 1 To UBound(magg)-1
        Next
        Et =Round( QuantitaTeoricaCombMagUgAlRitX(Rit,1,1,1),2)

        scarto=Round(i-Et,2)
        Call alimentaArrayTab(aRis, NomeRuota(R),StringaNumeri(magg,,True),StringaNumeri(magx,,True),i,scarto)
Call AddRigaTabella(aRis,,0,3,1,1)
If i-Et>0 Then 
Call SetColoreCella(5,RGB(255,221,255),vbBlue)
End If
    Next
    Scrivi "Quantita Teorica calcolato al Ritardo >"&Rit&" = "&Et,1,,vbBlue,vbWhite,5
    Scrivi
    Scrivi
    Call CreaTabella
End Sub

Sub alimentaArrayTab(aRis,Ruota,aNum,aRit,Pres,Scomp)
aRis(1)=Ruota
aRis(2)=aNum
aRis(3)=Pres
aRis(4)=aRit
aRis(5)=Scomp
End Sub
ErroreD.jpg
 
Ultima modifica:
Ciao I Legend, ti rispondo velocemente perché tra poco vado al lavoro notturno,cosi puoi lavorarci.

Ho notato anch'io quell' errore e forse è dovuto al fatto che non trovando ritardi per quella ruota li calcola lo stesso con i dati della ruota precedente (bho) forse sarà da rivedere l'iter di compilazione.

Studiaci domani vediamo.

ciao scappo !!!!
 
BuonGiorno a tutte/i.

Penso e spesso succede che ci ritrovi "a litigare" ... per nulla.

La premessa è per la mancanza di scentificità ed aleatorietà nella materia trattata,

la diversa interpretazione, che si da alle cose. Modi diversi di interpretarle ed anche di intendere.

Quindi uno zero, che vale uno nel conteggio dei ritardi ... o qualc'altro futile motivo di incomprensione ...

rendono effettivamente inconciliabili alcune cose.

Dicevo spesso un +/- 1 da reputarsi insignificante ... anche se discriminante.

L' istruzione utilizzata da Mike, con una semplice struttura di pilotaggio,

evidenzia un "modus operandi" tra i tanti tutti ugualmente meritevoli di considerazione. Utili.

Essa riferisce che a "Ritardo Zero" sono 90 lottroni da estrarre.

Personalmente preferisco pensare che siano 85 ... ma è opinione personale.

Mentre così facendo ne discenderebbe che i "90 equiprobabili" siano a ritardo "-1"

... ma anche questa è opinione personale.

L'importante secondo me, è sempre valutare quali sono gli strumenti ...

che ci vengono messi a disposizione, ed usarli con cognizione.

Se uno per esempio usa un "metro in legno" per randellare il suo prossimo,

chiaro che non è per colpa del "metro" se il malcapitato ha bisogno di cure mediche.

E' per l'uso improprio che si fa di esso, ed è inutile accapigliarsi sull'utilità del metro.

E' utile ... e non deve essere utilizzato impropriamente.

Ecco dunque una semplice applicazione della funzione su cui ragionare:

Codice:
Sub Main
For Rit = 0 To 200
Scrivi FormatSpace (rit,3) &" ",1,0
Scrivi Round (QuantitaTeoricaCombMagUgAlRitX(Rit,1,1,1),2)
Next
End Sub

Non ho controllato ... uno ad uno ma essendo probabimente calcolati con una formula, come dice Mike,

ed al riguardo mi sembra di ricordare che Luigi ... l'abbia esposta e che fosse giusta ...

per me è giusta.

:)
 
Ultima modifica:
Ho controllato lo script.

Pare che la tabella sia alimentata, in assenza di dati propri,

con quelli ... ancora in memoria, ed appartenuti alla ruota precedente.

Quindi ho mantenuto il valore di "K" usandolo come fosse quello di una bandiera all'evidenza ...

di dati CORRETTAMENTE presenti ... per acconsentire ad alimentare la tabella.

Poi ... ne ho spostato l'azzeramento ... "all'inizio" di ogni ruota.

Codice:
Option Explicit
Sub Main
	' c'e un bug non so se ho modificato qualcosa dallo script originale
	Dim Ru(1),Nu(1)
	Dim R,X,K,KK,ER,Et,Estratti
	Dim Rit,i,Scarto
	Dim Ini,Fin
	Dim aTitolo
	Rit = CInt(InputBox("Quale ritardo superiore a ? ",,53))
	Ini = EstrazioneIni
	Fin = EstrazioneFin
	aTitolo = Array("","Ruote   ","Estratti","PreReali","Ritardi","Scompenso")
	Call InitTabella(aTitolo,RGB(234,234,255),0,3,1)
	Scrivi "Lezione Redim Preserve By Joe91 - Studio Mike58 "
	Scrivi
	Scrivi "Dati Filtrati al Ritardo Superiore a  :" & Rit,1
	Scrivi
	For R = 1 To 12
		If R = 11 Then R = 12
		Ru(1) = R 
		ReDim magg(0),magx(0) 
		K = 0 : KK = 0
		For X = 1 To 90
			Nu(1) = X
			If SerieRitardo(Ini,Fin,Nu,Ru,1) > Rit Then
				K = K + 1
				ReDim Preserve magg(K)
				magg(K) = X
				Call VerificaEsito(magg,Ru,EstrazioneFin,1,1,,,,Estratti)
			End If
			ER = EstrattoRitardo(R,X,Ini,Fin)
			If ER > Rit Then
				KK = KK + 1
				ReDim Preserve magx(KK)
				magx(KK) = ER
			End If
		Next
		ReDim aRis(5)
		For i = 1 To UBound(magg) - 1
		Next
		Et = Round(QuantitaTeoricaCombMagUgAlRitX(Rit,1,1,1),2)
		Scarto = Round(i - Et,2)
		Call alimentaArrayTab(aRis,NomeRuota(R),StringaNumeri(magg,,True),StringaNumeri(magx,,True),i,Scarto)
		If K > 0 Then Call AddRigaTabella(aRis,,0,3,1,1)
		If i - Et > 0 Then
			Call SetColoreCella(5,RGB(255,221,255),vbBlue)
		End If
	Next
	Scrivi "Quantita Teorica calcolato al Ritardo >" & Rit & " = " & Et,1,,vbBlue,vbWhite,5
	Scrivi
	Scrivi
	Call CreaTabella
End Sub
Sub alimentaArrayTab(aRis,Ruota,aNum,aRit,Pres,Scomp)
	aRis(1) = Ruota
	aRis(2) = aNum
	aRis(3) = Pres
	aRis(4) = aRit
	aRis(5) = Scomp
End Sub

Con richiamo alle premesse del post precedente ... ed ancora da verificare.

:) Cordiali saluti.
 
Ultima modifica:
ciao joe, la formula postata da Luigi è corretta, mike se non ho letto male dal suo script gli passava un parametro ( er )che era diverso dal valore di riferimento di un ritardo (Rif )comune ad ogni ruota. Solo punti di arrivo diversi:), ora verifico il tuo script grazie:) a te e a mike , miei maestri:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 06 maggio 2025
    Bari
    06
    44
    88
    74
    39
    Cagliari
    72
    46
    55
    69
    07
    Firenze
    84
    82
    56
    39
    05
    Genova
    77
    53
    57
    42
    49
    Milano
    40
    71
    11
    02
    64
    Napoli
    12
    78
    75
    59
    38
    Palermo
    16
    47
    26
    56
    05
    Roma
    20
    19
    55
    01
    72
    Torino
    54
    83
    78
    71
    41
    Venezia
    71
    41
    55
    35
    63
    Nazionale
    46
    52
    67
    78
    59
    Estrazione Simbolotto
    Milano
    34
    21
    07
    16
    01

Ultimi Messaggi

Indietro
Alto