Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
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?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.
Mattia73 risponde:“Ricerca lunghette impiega 24 minuti per 14 miliardi di combinazioni.È impossibile che RitardoFormazioniLinux analizzi 77 miliardi in una frazione di secondo.”
Ed è esattamente così.“Non le analizza. Le scarta in blocco.”
Quindi:Aggiungere numeri a un gruppo non può aumentare il ritardo.Può solo mantenerlo o diminuirlo.
Quindi:“Il programma sa quante ottine scarta e quante analizza.Alla fine la somma torna esattamente a 77.515.521.435.”
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.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.
Quindi:ritardo(formazione) = MINIMO dei ritardi delle coppie (ambo) o terzine (terno) contenute nella formazione