Il calcolo è semplice. In primo luogo, capire quanti "tentativi" un computer può fare al secondo, minuto o ora, ecc. Ovviamente dipende dai computer. Ad esempio, diciamo 1000 calcoli al secondo.
Quindi tempo in secondi = 2 ^ 1000/1000 = 1.071509e + 298
Quindi puoi convertire in minuti dividendo quel numero per 60, e così via.
La formula è: timeInUnit = nbCombinations / (CombinationsPerUnit * nbComputers)
Il tempo di provare tutte le combinazioni è il numero di combinazioni diviso per il numero di combinazioni che il computer può eseguire in quell'unità di tempo, nuovamente diviso per il numero di computer che hai.
TUTTAVIA, per raggiungere una particolare sequenza, puoi, in media, dividerlo per 2. Perché in uno scenario reale, non devi provare ogni combinazione, ti fermi quando ottieni quello che vuoi. In media, lo colpisci dopo aver esaurito la metà delle possibilità. Potresti essere fortunato e colpirlo al primo tentativo, oppure potresti dover passare attraverso ogni combinazione.
Ora, per colpire un certo numero di sequenze, ad esempio 3, quanto tempo impiega in media? Non tre volte di più, perché al massimo provare ogni combinazione ti garantirà di colpire quelli 3. Ma deve essere più della metà del tempo, giusto? Beh, questo è un problema di probabilità divertente, ti lascio capire.