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
    sabato 27 giugno 2026
    Bari
    46
    42
    63
    90
    08
    Cagliari
    86
    69
    76
    89
    55
    Firenze
    77
    54
    87
    57
    88
    Genova
    70
    65
    44
    76
    58
    Milano
    52
    41
    53
    74
    16
    Napoli
    32
    56
    09
    73
    63
    Palermo
    17
    82
    87
    84
    67
    Roma
    50
    09
    48
    79
    12
    Torino
    81
    43
    75
    21
    38
    Venezia
    15
    72
    65
    74
    60
    Nazionale
    88
    21
    04
    26
    55
    Estrazione Simbolotto
    Napoli
    03
    30
    18
    38
    44
Indietro
Alto