Novità

Mi aiutate a capire OrdinaMatrice...

siriano

Member
Non riesco proprio a mettere insieme questa funzione.

Ho 4 numeri

Dim nn(4,2)
nn(1) = 10
nn(2) = 11
nn(3) = 12
nn(4) = 13

voglio sapere se nelle precedenti N estrazioni hanno già dato un ambo.

Grazie a tutti.
 
Ciao Siriano la richiesta si scontra col titolo, bisogna distinguere fra matrice semplice e matrice bidimenionale.
Una serve per ordinare i numeri, l'altra per collacare gli stessi in una data collocazione.
Ad ogni modo vedi l'esempio script con anche gli esiti delle estrazioni volute.

Codice:
Sub Main
	ReDim nn(4,2)
	Scrivi String(30,"-")
	Scrivi "Matrice Bidimensionale "
	nn(1,1) = 10
	nn(2,1) = 11
	nn(3,2) = 12
	nn(4,2) = 13
	ScriviMatrice(nn)
	Scrivi String(30,"-")
	Scrivi "Matrice semplice "
	ReDim nn(4),ru(1)
	nn(1) = 10
	nn(2) = 11
	nn(3) = 12
	nn(4) = 13
	Call OrdinaMatrice(nn,1,1)' ordina in modo crescente
	Scrivi StringaNumeri(nn)
	Scrivi String(30,"-")
	'----- codice x verifica esito ------------------
	r = 1
	ru(1) = r
	Ini = EstrazioneFin - 20
	fin = EstrazioneFin
	Tot = fin - Ini
	For es = Ini To fin
		c = c + 1 ' incremento casi
		Call VerificaEsito(nn,ru,es,1,1,Nothing,RetEsito,RetColpi,RetEstratti,RetID)
		Scrivi Format2(c) & "° - ",0,0
		Scrivi es & " - " & StringaEstratti(es,r) & " - ",0,0
		Scrivi RetEsito & " - ",0,0
		'Scrivi Retcolpi & " - ",0,0
		Scrivi RetEstratti & " - ",0,0
		Scrivi RetID
	Next
	'-------------------------------------------------
End Sub
 
Mike grazie, come al solito sempre disponibile e gentile.
Io ci sto provando ma penso di essere proprio negato per la programmazione.
In pratica dallo script sotto vorrei sapere se i 4 numeri a,b,c,d
hanno dato almeno un ambo in un numero N di estrazioni precedenti,
se hanno dato almeno un ambo non deve scrivere niente
altrimenti scrive i 4 numeri.
Ciao.


Sub Main()
ReDim nn(4),ru(2)
Dim caso
ini = EstrazioneFin
fin = EstrazioneFin
Tot = fin - Ini
For es = ini To fin
Call AvanzamentoElab(Ini,fin,es)

For r1 = 1 To 9
r2 = r1 + 1
For p1 = 1 To 4
p2 = p1 + 1
a = Estratto(es,r1,p1) : b = Estratto(es,r1,p2)
c = Estratto(es,r2,p1) : d = Estratto(es,r2,p2)
nn(1) = a
nn(2) = b
nn(3) = c
nn(4) = d

Call OrdinaMatrice(nn,1,1) 'ordina in modo crescente
Scrivi StringaNumeri(nn)
Scrivi String(30,"-")

ru(1) = r1
ru(2) = r2
c = c + 1 'incremento casi
Call VerificaEsito(nn,ru,es,1,1,Nothing,RetEsito,RetColpi,RetEstratti,RetID)
Scrivi Format2(c) & "° - ",0,0

Scrivi es & " - " & StringaEstratti(es,r1,r2) & " - ",0,0
Scrivi RetEsito & " - ",0,0
Scrivi Retcolpi & " - ",0,0
Scrivi RetEstratti & " - ",0,0
Scrivi RetID

Next:Next:Next
End Sub
 
Ciao Siriano non capisco perché se ci cerchiamo gli esiti non dobbiamo scrivere niente.

Tuttavia nello script ci sono degli if then che puoi togliere per visualizzare quello che vuoi vedere, senza essere esperti su qualche riga si può intervenire per fare palestra scriptica.

Io ti ho fatto una versione dalla quale puoi trarre delle indicazioni, altrimenti deve essere tutto un altro script.

Codice:
Sub Main
	ReDim nn(4),ru(1)
	nn(1) = 54
	nn(2) = 62
	nn(3) = 47
	nn(4) = 79
	QT = InputBox("QUANTE ESTRAZIONI CONTROLLO",,100)
	R = InputBox("QUALE RUOTA",,1)
	Ini = EstrazioneFin - QT
	fin = EstrazioneFin
	Tot = fin - Ini
	Call OrdinaMatrice(nn,1,1)' ordina in modo crescente
	Scrivi "Script di verifica Combinazioni ***** per Siriano **** Forum Lottoced **** script By Mike58 **** ",True,True,2,4,3
	Scrivi "La combinazione.... " & StringaNumeri(nn) & " su un Totale di " & Tot & " estrazioni  ha realizzato ",1
	Scrivi String(80,"-")
	'----- codice x verifica esito ------------------
	ru(1) = R
	For es = Ini To fin
		c = c + 1 ' incremento casi
		Call VerificaEsito(nn,ru,es,1,1,Nothing,RetEsito,RetColpi,RetEstratti,RetID)
		'If retesito = "Estratto" Or retesito = "Ambo" Or retesito = "Terno" Or retesito = "Quaterna" Or retesito = "Cinquina" Then
		If retesito <> "" Then
			Scrivi Format2(c) & "° - ",0,0
			Scrivi es & " - " & StringaEstratti(es,r) & " - ",0,0
			Scrivi RetEsito & " - ",0,0
			'Scrivi Retcolpi & " - ",0,0
			Scrivi RetEstratti & " - ",0,0
			Scrivi RetID
			If retesito = "Estratto" Then e = e + 1
			If retesito = "Ambo" Then a = a + 1
			If retesito = "Terno" Then t = t + 1
			If retesito = "Quaterna" Then q = q + 1
			If retesito = "cinquina" Then cq = cq + 1
			'If retesito = "" Then z = z+1
		End If
		Call VerificaEsito(nn,ru,es,1,1,Nothing,RetEsito,RetColpi,RetEstratti,RetID)
		If retesito = "" Then z = z + 1
	Next
	Scrivi String(80,"-")
	'-------------------------------------------------
	Scrivi
	Scrivi "Totali estratti " & format2(e) & " - Casi senza estratto " & c - e
	Scrivi "Totali Ambi     " & Format2(a) & " - casi senza Ambo     " & c - a
	Scrivi "Totali terni    " & Format2(t) & " - Casi senza Terno    " & c - t
	Scrivi "Totali quaterne " & format2(q) & " - casi senza Quaterna " & c - q
	Scrivi "totali cinquine " & Format2(cq) & " - Casi senza Cinquina " & c + cq
	Scrivi
	Scrivi "Casi senza esito   " & z,True,True,3,1,3
End Sub
 
Mike scusami, sono io che mi sono spiegato male.
I 4 numeri sono una previsione su 2 ruote
a = Estratto(es,r1,p1) : b = Estratto(es,r1,p2)
c = Estratto(es,r2,p1) : d = Estratto(es,r2,p2)
nn(1) = a
nn(2) = b
nn(3) = c
nn(4) = d
se la previsione è già sfaldata almeno in un ambo entro un certo numero di estrazioni precedenti
è inutile scriverla, se invece ha dato solo ambate allora scriverla perchè giocabile.
Ciao e grazie.
 
Ciao Siriano, tranquillo, si può fare tutto se le indicazioni di richiesta sono chiare.
Se mi dici questi 4 numeri o 2 ambi su 2 ruote che caratteristica devono avere ti faccio direttamente lo script altrimenti i numeri cosi immessi in manuale con una istruzione seriefrequenza e possibile far scrivere se hanno data esito o meno, ma è un lavoro freddo e fine a se stesso.

nel frattempo con la mia statistica veloce puoi valutarti i tuoi numeri statisticamente.


Codice:
Sub Main
'STATISTICA VELOCE
	Dim posta(3)
	posta(2) = 1
	ReDim aNumeri(10)
	ScegliNumeri(aNumeri)
	'aNumeri(1) = 27
	'aNumeri(2) = 72
	'aNumeri(3) = 68
	'aNumeri(4) = 81
	'aNumeri(5) = 5
	Ini = EstrazioneFin - 5000
	fin = EstrazioneFin
	diff = fin - Ini
	ReDim aRuote(12)
	'aRuote(1) = 1
	'aRuote(2) = 2
	Dim k
	Scrivi " Ruota di... ",1,0,4
	If ScegliRuote(aRuote) > 0 Then
		For k = 1 To UBound(aRuote)
			If aRuote(k) > 0 Then
				
				Scrivi " " & NomeRuota(aRuote(k)),1,0,3
				Scrivi " ",1,0,3
			End If
		Next
	End If
	Scrivi "  Numeri in gioco.... ",1,0,2
	Scrivi " " & StringaNumeri(aNumeri) & " ",1,0,7
	Scrivi " Su tot estraz. " & diff & "  ",1,- 1,3
	
	Scrivi"--------------------------------------------"
	Scrivi "Frequenza x ambata...        " & SerieFreq(Ini,fin,aNumeri,aRuote,1),1
	Scrivi "Ritardo x ambata...          " & SerieRitardo(Ini,fin,aNumeri,aRuote,1),1
	Scrivi "Ritardo storico per ambata..." & SerieStorico(Ini,fin,aNumeri,aRuote,1),1
	Scrivi ""
	Scrivi "Frequenza x ambo...          " & SerieFreq(Ini,fin,aNumeri,aRuote,2),1
	Scrivi "Ritardo x ambo...            " & SerieRitardo(Ini,fin,aNumeri,aRuote,2),1
	Scrivi "Ritardo storico per ambo...  " & SerieStorico(Ini,fin,aNumeri,aRuote,2),1
	Scrivi ""
	Scrivi "Frequenza x terno...         " & SerieFreq(Ini,fin,aNumeri,aRuote,3),1
	Scrivi "Ritardo x terno...           " & SerieRitardo(Ini,fin,aNumeri,aRuote,3),1
	Scrivi "Ritardo storico per terno... " & SerieStorico(Ini,fin,aNumeri,aRuote,3),1
	ColoreTesto 1
	Scrivi
	Scrivi "Frequenza x ambata  ultime 10  estrazioni...     " & SerieFreq(FIN - 10,fin,aNumeri,aRuote,1),1
	Scrivi "Frequenza x ambo    ultime 20  estrazioni...     " & SerieFreq(FIN - 20,fin,aNumeri,aRuote,2),1
	Scrivi "Frequenza x terno   ultime 100 estrazioni...     " & SerieFreq(FIN - 100,fin,aNumeri,aRuote,3),1

	ColoreTesto 0
	Scrivi"-------------------------------------------- Dettaglio ultime 18 estrazioni --------------------------------------"
	ImpostaGiocata 1,aNumeri,aRuote,posta,18
	Gioca(EstrazioneFin - 18),,,1
	TestoInBandaPassante" *********** Statistica Veloce *************  listed by Mike58 ***************** ",1,3,0
	ScriviResoconto(True)
	Scrivi "     Listed  by  Mike58    ",1,- 1,6
	
End Sub
 
Mike tu sei un artista e io non riesco a farmi capire.
Studiando i tuoi script ho provato in questi 2 giorni a fare da me,
ma proprio non rieso a mettere insieme una riga dopo l'altra.
Cerco quindi di spiegarmi al meglio approfittando della tua pazienza e disponibilità.

Ipotizziamo di fare una previsione su 2 ruote che ci dia 4 numeri.

1° di BA + 2° di BA
1° di CA + 2° di CA
1° di BA + 1° di CA
2° di BA + 2° di CA

questi 4 numeri sono buoni da giocare se nelle 67 estrazioni precedenti non
hanno realizzato nessun ambo, o più di un ambo o un terno, ecc.
Se hanno realizzato qualcosa è inutile che li scriva, non è una previsione buona,
se non hanno realizzato niente deve scriverla perchè i 4 numeri sono giocabili su quelle 2 ruote.

Il massimo sarebbe che lo script invece scrivesse quante volte, solo il totale, ognuno
di quei 4 numeri è uscito come ambata su una qualsiasi delle 2 ruote,
se ci fossero 2 numeri che non sono mai usciti come ambata sarebbe un ambo secco giocabile.

Le 2 ruote possono essere qualsiasi coppia di ruote delle 10 ruote,
compreso Venezia + Bari nell'ordine.

I 4 numeri possono essere dati dai 5 accoppiamenti possibili:
1°+2° / 2°+3° / 3°+4° / 4°+5° / 5°+1° nell'ordine.

Grazie e buona giornata.
 
Ciao Siriano eccoti il corpo del semplice script che volendo puoi modificarti nei calcoli a tuo piacimento.


Codice:
Sub Main
	Dim Nu(6),Ru(2)
	Tot = InputBox("Quante estrazioni analizzo",,100)
	Ritroso = InputBox("Quante estrazioni controllo ambo",,67)
	R1 = InputBox("Quale 1° RUOTA",,1)
	R2 = InputBox("Quale 2° RUOTA",,2)
	sorte = CInt(InputBox("quale sorte",,2))
	Ini = EstrazioneFin - Tot
	fin = EstrazioneFin
	Ru(1) = R1
	Ru(2) = R2
	Scrivi "Esamino ambi formati dalle posizioni delle Ruote di... " & SiglaRuota(R1) & "-" & SiglaRuota(r2) & " per Sorte di " & NomeSorte(sorte) & _
	" su un controllo a ritroso di Es " & ritroso,True,True,,2,3
	For es = Ini To fin
		a = Estratto(es,R1,1)
		b = Estratto(es,R1,2)
		c = Estratto(es,R2,1)
		d = Estratto(es,R2,2)
		Nu(1) = Fuori90(a + b)
		Nu(2) = Fuori90(a + c)
		Nu(3) = Fuori90(a + d)
		Nu(4) = Fuori90(b + c)
		Nu(5) = Fuori90(b + d)
		Nu(6) = Fuori90(c + d)
		fre = SerieFreq(fin - Ritroso,fin,Nu,Ru,sorte)
		If fre = 0 Then
			k = k + 1
			Scrivi GetInfoEstrazione(es) & "  " & StringaNumeri(Nu,,True) & " - " & fre & "   ***** previsione Giocabile ***** sulle ruote di.. " & _
			SiglaRuota(R1) & "-" & SiglaRuota(R2),True,True,3,1,3
		Else ' spuntare x non scrivere
			Scrivi GetInfoEstrazione(es) & "  " & StringaNumeri(Nu,,True) & " - " & fre,True,True,RGB(177,177,177),5,3 ' spuntare x non scrivere
		End If
	Next
	Scrivi String(90,"=") & " Casi attivi " & k,1
End Sub
 
Ciao Mike

buon giorno a tutti.

Dico sul serio.

Per chi deve organizzarsi in tal senso

E' semplice, utile, ben spiegato,

In sintesi: ottimo.

:)
 
OK Mike ho fatto qualche prova e sembra funzionare bene.
Qualche domandina:
[115] 24.09.2013 63.78.39.24 - 0 <<<<< Previsione giocabile sulle ruote di BA-CA
[115] 24.09.2013 65.77.90.78 - 2
penso che ovviamente 0 indica che non ha dato ambi e 2 che ha dato 2 ambi, giusto?

sorte = 2
è possibile fargli verificare anche gli eventuali terni?

Ciao e grazie.
 
Si, è possibile tramite l'input box digitando =3 , e puoi verificare tutte le sorti minima che vuoi dall'estratto alla cinquina, chiaramente da 1 a 5 per digit.
 
Guarda, si può fare tutto, ma è una questione di vedute !!!

Ti metto i 3 ritardi così da valutarne i 3 ritardi, ma come dicevo è una questione di vedute.

Codice:
Sub Main
	Dim Nu(6),Ru(2)
	Tot = InputBox("Quante estrazioni analizzo",,100)
	Ritroso =CInt( InputBox("Quante estrazioni controllo ambo",,67))
	R1 = InputBox("Quale 1° RUOTA",,1)
	R2 = InputBox("Quale 2° RUOTA",,2)
	sorte = CInt(InputBox("quale sorte",,2))
	Ini = EstrazioneFin - Tot
	fin = EstrazioneFin
	Ru(1) = R1
	Ru(2) = R2
	Scrivi "Esamino ambi formati dalle posizioni delle Ruote di... " & SiglaRuota(R1) & "-" & SiglaRuota(r2) & " per Sorte di " & NomeSorte(sorte) & _
	" su un controllo a ritroso di Es " & ritroso,True,True,,2,3
	For es = Ini To fin
		a = Estratto(es,R1,1)
		b = Estratto(es,R1,2)
		c = Estratto(es,R2,1)
		d = Estratto(es,R2,2)
		Nu(1) = Fuori90(a + b)
		Nu(2) = Fuori90(a + c)
		Nu(3) = Fuori90(a + d)
		Nu(4) = Fuori90(b + c)
		Nu(5) = Fuori90(b + d)
		Nu(6) = Fuori90(c + d)
		fre = SerieRitardo(fin - Ritroso,fin,Nu,Ru,1)
		fre2 = SerieRitardo(fin - Ritroso,fin,Nu,Ru,2)
		fre3 = SerieRitardo(fin - Ritroso,fin,Nu,Ru,3)

		If fre2 > ritroso Then
			k = k + 1
			Scrivi GetInfoEstrazione(es) & "  " & StringaNumeri(Nu,,True) & " - " & fre & " - " & fre2 & " - " & fre3 & "   ***** previsione Giocabile ***** sulle ruote di.. " & _
			SiglaRuota(R1) & "-" & SiglaRuota(R2),True,True,3,1,3
		Else ' spuntare x non scrivere
			Scrivi GetInfoEstrazione(es) & "  " & StringaNumeri(Nu,,True) & " - " & fre & " - " & fre2 & " - " & fre3,True,True,RGB(177,177,177),5,3 ' spuntare x non scrivere
		End If
	Next
	Scrivi String(90,"=") & " Casi attivi " & k,1
End Sub
 
Siriano, intendo dire che se imposti per sorte minima di ambata è inutile che cerchi gli esiti di sorti superiori che tanto non ci saranno, e cosi via ambo->terno.
Secondo me uno script deve essere elastico e raggiungere lo scopo per cui si costruisce.
Niente di altro nelle mia "questione di vedute ".
Poi se ti necessita posso aggiungere tutti i dati che vuoi anche in una tabella con visualizzazione + immediata.

fammi sapere !!!

Ciao
 
Si Mike giusto, l'ho capito dopo aver postato, se non è uscito l'ambo come può essere uscito un terno???
Sai con gli anziani è come con i bambini: bisogna avere pazienza.
I tuoi script mi bastano e avanzano, mi hanno aperto un mondo con le frequenze che non riuscivo a mettere insieme,
ne ho fatto uno da solo stamattina per prova e funziona alla grande.
Una cortesia: in una operazione con numeri come si fa a fargli scrive solo 2 decimali, es.: 3,67231638418079E-02
mi basta 3,67 o arrotondato per eccesso a 3,7
Grazie, ciao.
 
Ciao Siriano.

Mi permetto di intervenire ... perchè il tuo quesito apparentemente semplice forse per avere una risposta completa,

richiede un chiarimento da parte di Luigi ... o di qualcuno veramente addentro ...

e sa indicare se è necessaria una funzione appositamente dedicata all'arrotondamento "per eccesso"

In pratica non so esiste ... di serie.

Se ti può bastare una precisione "da officina" ti lascio questo esempio

di pi_greco_mecccanico con i suoi vari arrotondamenti.

Codice:
Sub Main
	For N = 10 To 1 Step-1
		Scrivi Round ((22/7),N) 
	Next 
End Sub

Per il resto ... sono curioso anch'io di sapere se è già prevista dal basic.

:) Cordiali saluti.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 18 gennaio 2025
    Bari
    24
    76
    02
    72
    12
    Cagliari
    21
    08
    77
    04
    17
    Firenze
    74
    84
    07
    12
    72
    Genova
    13
    07
    33
    47
    18
    Milano
    01
    34
    09
    55
    48
    Napoli
    46
    23
    25
    03
    06
    Palermo
    44
    07
    01
    46
    84
    Roma
    88
    78
    64
    74
    04
    Torino
    07
    87
    67
    38
    53
    Venezia
    31
    25
    04
    18
    02
    Nazionale
    49
    82
    59
    65
    67
    Estrazione Simbolotto
    Bari
    03
    13
    31
    23
    35

Ultimi Messaggi

Indietro
Alto