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
    venerdì 03 aprile 2026
    Bari
    70
    81
    90
    42
    35
    Cagliari
    09
    74
    68
    25
    48
    Firenze
    49
    25
    76
    87
    82
    Genova
    73
    24
    80
    85
    47
    Milano
    04
    45
    73
    48
    42
    Napoli
    51
    57
    56
    43
    50
    Palermo
    49
    14
    82
    40
    68
    Roma
    12
    79
    82
    18
    87
    Torino
    09
    52
    39
    90
    85
    Venezia
    53
    75
    16
    59
    18
    Nazionale
    84
    64
    17
    01
    32
    Estrazione Simbolotto
    Genova
    22
    17
    41
    28
    18

Ultimi Messaggi

Indietro
Alto