Novità

Terni consecutivi

I 5 cicli nidificati che hai inserito nel tuo script

non li avevo provati ma mi era ovvio che non funzionassero a dovere.

In primis per questioni di efficienza.

5 * 5 * 5 * 5 * 5 è uguale ad un numero spropositato di combinazioni

dal quale estratte 10 terni. (ma il Pc lo farebbe).

Pero:

Scritti come erano scritti, non funzionano e generano 1 solo ciclo.

UNO.

Questo è il quanto:

Codice:
Option Explicit
Sub Main
 Dim p1,p2,p3,p4,p5
 For p1 = 1 To 5
  For p2 = p1 + 1 To 5
   For p3 = p2 + 1 To 5
    For p4 = p3 + 1 To 5
     For p5 = p4 + 1 To 5
      Scrivi p1 & " " & p2 & " " & p3 & " " & p4 & " " & p5
     Next
    Next
   Next
  Next
 Next
End Sub

Messaggio 6
Risposta tua:
Se hai uno script da correggere, posso cercare di aggiungere il mio aiuto.

Farlo io, no.

Leggo che c'è uno script da correggere e lo sto facendo.

:)
 
Ciao a tutti, non uso spaziometria da molto ma mi ricordo ancora qualcosa.... e tante cose me le ha insegnate proprio Joe, che ringrazio.
Prova con questo Reacher
Codice:
Sub Main
Dim es,r,E,E1,E2,p,P1,P2 
For es = 1 to 2600
For r = 1 to 11
For p = 1 to 5
E = estratto(es,r,p)
For P1 = 1 to 5
E1 = estratto(es,r,P1)
If distanza(E,E1) = 1 Then
For P2 = 1 to 5
E2 = estratto(es,r,P2)
If fuori90(E+1)= E2 then
Scrivi dataestrazione(es) 'inserire qui ciò che si vuole stampare
Exit for
End if
Next
End if
Next
Next
Next
Next
End sub
 
Il calcolo delle combinazioni (Combinatorio) è la parte più difficile da gestire e delicata da affrontare.

Nel ringraziare Saturno aggiungo che con più di 40 anni di esperienza ... si può fare!

Dunque considerando che i numeri sono 5 da combinarsi in Terni ...

le tabelle statistiche ci indicano che ci devono essere 10 Combinazioni (semplici).

Questa routine che uso da anni lo fa egregiamente e pertanto la propongo come soluzione.

Codice:
Option Explicit
Sub Main
 Dim A,B,C
 For A = 1 To 3
  For B = A + 1 To 4
   For C = B + 1 To 5
    Scrivi A & "° " & B & "° " & C & "°"
   Next
  Next
 Next
End Sub

L'output dimostra come a-b-c possono indicare la posizione dei 5 estratti,

in 10 modi diversi - ordinati - utili ad essere 10 Terni senza errori, mancanze, ripetizioni.

:)
 
La struttura principale dello script è quella proposta inizialmente.

Codice:
Option Explicit
Sub Main
 Dim Ini,Fin,Es,R,P,E(5)
 Ini = 10805 : Fin = 10805
 For Es = Ini To Fin
  For R = 1 To 12 : If R = 11 Then R = 12
   Scrivi NomeRuota(R),1
   For P = 1 To 5
    E(P) = Estratto(Es,R,P)
   Next
   ''''  Output di controllo/debug
   For P = 1 To 5
    Scrivi E(P)
   Next
   Scrivi String(9,"-")
   ''''
  Next
 Next
End Sub

La zona preposta al debug, andrà semplicemente sostituita con quella per lo sviluppo dei Terni.

In ultimo, sarà necessario "un filtro" per escludere tutti quelli che non sono consecutivi.

:)

PS: Nota come questo script è molto simile, nella sua struttura a quello proposto da Saturno.
 
Ultima modifica:
Nel fondere i 2 script ... abbiamo un primo passo verso la soluzione del problema

e la possibilità di notare alcune cose che elencherò dopo lo script ed i suoi risultati.

Codice:
Option Explicit
Sub Main
 Dim Ini,Fin,Es,R,P,E(5)
 Dim A,B,C
 Ini = 10805 : Fin = 10805
 For Es = Ini To Fin
  For R = 1 To 1'2 : If R = 11 Then R = 12
   Scrivi NomeRuota(R),1
   For P = 1 To 5
    E(P) = Estratto(Es,R,P)
   Next
   ''''  Sviluppo Combinazioni
   For A = 1 To 3
    For B = A + 1 To 4
     For C = B + 1 To 5
      Scrivi E(A) & " " & E(B) & " " & E(C)
     Next
    Next
   Next
   ''''
  Next
 Next
End Sub

Che produce :

Codice:
Bari
40 72 47
40 72 39
40 72 63
40 47 39
40 47 63
40 39 63
72 47 39
72 47 63
72 39 63
47 39 63

Si vede che è un buon risultato perché ci sono i 10 terni giusti.

Però sono "scombussolati" e DISORDINATI.

Semplicemente perché nel gioco del Lotto gli Estratti ci vengono proposti

in ordine temporale e non numerico.

Per semplicità e per non complicare lo script si può usare OrdinaMatrice e si ottiene:

Codice:
Bari
39 40 47
39 40 63
39 40 72
39 47 63
39 47 72
39 63 72
40 47 63
40 47 72
40 63 72
47 63 72

Che evidentemente è lo sviluppo corretto di tutti i 10 Terni realizzabili con 5 Numeri.

:)
 
Ultima modifica:
In ultimo quando i Terni E(A) , E(B) , E(C) sono Ordinati e gli estratti sono in distanza 1.

E(A) è UGUALE al numero centrale E(B) MENO 1 e

Contestualmente E(B) è UGUALE a E(C) (il numero maggiore) MENO 1.

Con 2 test condizionali semplici ed ottimizzati abbiamo la possibilità di ottenere tutto il necessario.

Lo script :

Codice:
Option Explicit
Sub Main
 'Ricerca Terni Consecutivi Script By Joe V.1.0 del 18/02/2026
 Dim Ini,Fin,Es,R,P,E(5)
 Dim A,B,C
 Ini = EstrazioneFin - 200 : Fin = EstrazioneFin
 For Es = Ini To Fin
  For R = 1 To 12 : If R = 11 Then R = 12
   For P = 1 To 5
    E(P) = Estratto(Es,R,P)
   Next
   Call OrdinaMatrice(E,1)
   For A = 1 To 3
    For B = A + 1 To 4
     For C = B + 1 To 5
      If(E(A) = E(B) - 1) Then
       If(E(B) = E(C) - 1) Then
        Scrivi Es & " " & DataEstrazione(Es,,,"/") & " " & SiglaRuota(R) & " ",0,0
        Scrivi Format2(E(A)) & "." & Format2(E(B)) & "." & Format2(E(C))
       End If
      End If
     Next
    Next
   Next
  Next
 Next
End Sub

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    lunedì 27 aprile 2026
    Bari
    38
    78
    24
    40
    33
    Cagliari
    26
    80
    05
    01
    48
    Firenze
    80
    71
    74
    22
    67
    Genova
    68
    39
    49
    59
    13
    Milano
    40
    19
    08
    62
    84
    Napoli
    43
    80
    06
    78
    82
    Palermo
    37
    55
    68
    33
    11
    Roma
    01
    04
    36
    81
    38
    Torino
    17
    15
    75
    69
    76
    Venezia
    70
    85
    24
    56
    53
    Nazionale
    76
    84
    68
    65
    23
    Estrazione Simbolotto
    Genova
    19
    20
    44
    08
    02
Indietro
Alto