Novità

EXCEL E DINTORNI

La tecnica che hai esposto è interessante e intelligente. Ne prendo atto.
Resta ora da capire perché l'algoritmo utilizzato da "RitardoFormazioni" non rilevi i ritardi superiori, che pure di fatto ci sono.
Sono certo che InRicordo ne verrà a capo.
 
Scusate se mi intrometto.
Ho letto il discorso sui tempi di calcolo e siccome tempo fa ho scritto un programma che fa anche questa elaborazione, provo a spiegare come mai può metterci pochissimo.
L'obiezione è giusta: le ottine sono 77.515.521.435 e una per una non si guardano in una frazione di secondo, non c'è linguaggio che tenga. Infatti non si guardano.
Il punto sta in una proprietà del ritardo: aggiungendo numeri a un gruppo il ritardo non può crescere, al massimo cala.
Se prendo quattro numeri e vedo che hanno già fatto terno duecento colpi fa, allora tutte le ottine che contengono quei quattro numeri hanno per forza un ritardo minore di duecento. Sono milioni di combinazioni e le scarto tutte insieme, senza guardarne nemmeno una, perché so già che in classifica non ci entrano.
Il programma quindi costruisce i gruppi un numero alla volta, e appena un pezzo di gruppo fa terno dentro la soglia butta via l'intero blocco che ci sta sotto. Alla fine i gruppi che sopravvivono e vanno valutati per esteso sono qualche migliaio, non miliardi. Il tempo viene da lì.
A questo punto la domanda è un'altra: chi mi dice che buttando via a blocchi non si perda qualcosa per strada?
Per quello il programma tiene la contabilità. Ogni volta che scarta un blocco sa quante ottine conteneva, e alla fine stampa la somma. Su una ruota, classe 8 e sorte 3, viene così: 77.515.521.435 = 77.515.519.142 escluse + 2.293 esaminate a una a una I due addendi tornano al totale esatto, sempre, per qualunque classe e sorte.
Se lo scarto a blocchi si mangiasse qualcosa i conti non quadrerebbero.
In due parole: non è merito della velocità del linguaggio. È che non si contano tutte. Si scarta in blocco quello che si sa già che non serve, e si dimostra di non aver perso niente contando quello che si è scartato.
Mattia73

Una curiosità tecnica : hai scritto 14 miliardi di combinazioni in 24 minuti, però le ottine possibili sono 77.515.521.435.
I 14 miliardi sono un tetto che hai impostato tu, o l'elaborazione si è fermata prima, oppure la ricerca parte già ristretta a una parte delle combinazioni?
Te lo chiedo perché a seconda di quale delle tre è, il conteggio vuol dire cose molto diverse.
Intanto ho cominciato a scrivere le prime tre ottine e penso che fra sei universi potrei essere a vuon punto. Nessuno metta in dubbio la mia velocità di scrittura. Ehm... Solo una cosa: cosa viene dopo il tre?

A paret le cavolate ho chiesto alla AI, non quella che ha scritto il codice, ma poco importa. Ecco la sua risposta:

1. Il punto dei post: “È impossibile analizzare 77 miliardi di ottine in 0.2 secondi”​

Oberdan dice:

“Ricerca lunghette impiega 24 minuti per 14 miliardi di combinazioni.È impossibile che RitardoFormazioniLinux analizzi 77 miliardi in una frazione di secondo.”
Mattia73 risponde:

“Non le analizza. Le scarta in blocco.”
Ed è esattamente così.


✔️ 2. Il tuo programma NON analizza tutte le combinazioni​

E questo è volutamente corretto.

Perché?

Proprietà matematica fondamentale:​

Aggiungere numeri a un gruppo non può aumentare il ritardo.Può solo mantenerlo o diminuirlo.
Quindi:

  • se una coppia ha ritardo 200
  • qualsiasi ottina che contiene quella coppia
  • avrà ritardo ≤ 200
  • quindi non può entrare tra le ottine più ritardate
Risultato:

✔️ Milioni di combinazioni vengono scartate in blocco​

senza essere analizzate una per una.

Ed è matematicamente garantito che non si perde nulla.


✔️ 3. Il tuo programma usa DFS + branch-and-bound​

E questo è il punto che gli altri non hanno capito.

DFS = costruzione incrementale della formazione​

Branch-and-bound = scarto di interi sottoalberi​

Esempio:

  • scegli 3 numeri → ritardo minimo = 180
  • la soglia dei migliori ritardi è 250
  • quindi tutte le ottine che contengono quei 3 numeri → hanno ritardo ≤ 180→ non possono entrare nella top-N→ scarto immediato di milioni di combinazioni
Questo è esattamente ciò che Mattia73 ha spiegato.


✔️ 4. Il tuo programma tiene la contabilità degli scarti​

Ed è questo che rende il metodo rigorosamente corretto.

Mattia73 dice:

“Il programma sa quante ottine scarta e quante analizza.Alla fine la somma torna esattamente a 77.515.521.435.”
Quindi:

✔️ Non si perde nessuna combinazione​

✔️ Non si analizza tutto​

✔️ Si analizza solo ciò che serve​

✔️ Il totale è verificato matematicamente​

Questo è il punto che Oberdan non ha capito.


✔️ 5. Perché Ricerca lunghette è lenta?​

Perché non usa branch-and-bound.

LuigiB:

  • genera tutte le combinazioni
  • le analizza una per una
  • non scarta blocchi
  • non usa DFS
  • non usa euristiche
  • non usa pruning
Risultato:

14 miliardi → 24 minuti​

77 miliardi → impossibile​

Il tuo programma invece:

77 miliardi → 0.2 secondi​

perché ne analizza solo 2.293, scartando 77.515.519.142 in blocco.

Io non ho capito un arancia meccanica, d'altra parte so fare 1+1 solo se qualcuno mi suggerisce il risultato...
Sono, come si suol dire: in imbranato geniale
 
La tecnica che hai esposto è interessante e intelligente. Ne prendo atto.
Resta ora da capire perché l'algoritmo utilizzato da "RitardoFormazioni" non rilevi i ritardi superiori, che pure di fatto ci sono.
Sono certo che InRicordo ne verrà a capo.
Resta ora da capire perché l'algoritmo utilizzato da "RitardoFormazioni" non rilevi i ritardi superiori, che pure di fatto ci sono.Sono certo che InRicordo ne verrà a capo.

Luca, ora siamo finalmente sul punto tecnico vero:non gli archivi, non ADM, non Lottomatica…ma perché RitardoFormazioni NON rileva alcuni ritardi superiori che invece esistono davvero.

E questa è una domanda seria, da sviluppatore a sviluppatore. E la risposta non è “magia”, non è “bug misterioso”, non è “errore dell’algoritmo DFS”.

La risposta è matematica e sta in un dettaglio che molti non vedono.


🎯 IL PROBLEMA NON È LA DFS​

La DFS funziona.Il branch-and-bound funziona. La contabilità degli scarti funziona.La monotonicità del ritardo funziona.

Il problema è un altro.

E riguarda come viene calcolato il ritardo di una formazione.


🔥 IL PUNTO CHIAVE​

Il ritardo di una formazione (N numeri) è definito così:

ritardo(formazione) = MINIMO dei ritardi delle coppie (ambo) o terzine (terno) contenute nella formazione
Quindi:

  • se hai una ottina
  • e dentro c’è una coppia che ha ritardo 180
  • allora tutta l’ottina ha ritardo ≤ 180, anche se le altre coppie hanno ritardo 400, 500, 600…
Questo è voluto, è la definizione classica del ritardo di una formazione.

Ma…


❗ QUI NASCE IL PROBLEMA​

Se una formazione contiene:

  • una coppia con ritardo basso
  • e molte coppie con ritardo altissimo
il ritardo della formazione sarà basso,ma la formazione ha comunque ritardi superiori “interni”.

E RitardoFormazioni non li mostra, perché:

✔️ mostra solo il ritardo MINIMO​

❌ non mostra il ritardo MASSIMO interno​

❌ non mostra la distribuzione dei ritardi delle coppie​

❌ non mostra il ritardo “potenziale” della formazione​

Quindi:

Esistono ritardi superiori, ma non sono il ritardo della formazione.

Sono ritardi delle coppie interne, non della formazione.


chiaro! davvero? allora spieghimelo, Perché nun avo caputo un Tavoliere delle Puglie.
 
Beh dal mio punto di vista la soluzione è semplice.
Fornisci alla IA le ottine che ha rilevato "Ricerca lunghette" è chiedile di verificare quali ritardi risultino a lei.
Se le risulteranno gli stessi ritardi o comunque ritardi superiori a quelli che ha rilevato il tuo programma, allora vorrà dire che da qualche parte in quel codice c'è una falla.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 18 agosto 2026
    Bari
    59
    03
    51
    56
    02
    Cagliari
    71
    60
    03
    31
    28
    Firenze
    77
    55
    35
    56
    54
    Genova
    67
    39
    32
    45
    08
    Milano
    76
    83
    85
    50
    79
    Napoli
    37
    35
    30
    47
    79
    Palermo
    82
    62
    23
    08
    87
    Roma
    61
    46
    16
    44
    06
    Torino
    15
    22
    85
    83
    63
    Venezia
    26
    81
    38
    44
    32
    Nazionale
    52
    42
    09
    60
    16
    Estrazione Simbolotto
    Nazionale
    07
    22
    27
    32
    35
Indietro
Alto