El cálculo es simple. Primero, determine cuántos "intentos" puede hacer una computadora por segundo, minuto u hora, etc. Obviamente, depende de las computadoras. Por ejemplo, digamos 1000 cálculos por segundo.
Entonces, el tiempo en segundos = 2 ^ 1000/1000 = 1.071509e + 298
Luego puedes convertir en minutos dividiendo ese número por 60, y así sucesivamente.
La fórmula es: timeInUnit = nbCombinations / (CombinationsPerUnit * nbComputers)
El tiempo para probar todas las combinaciones es la cantidad de combinaciones dividida por la cantidad de combinaciones que la computadora puede hacer en esa unidad de tiempo, nuevamente dividida por la cantidad de computadoras que tienes.
SIN EMBARGO, para alcanzar una secuencia particular, puedes, en promedio, dividir ese tiempo entre 2. Ya que en un escenario real, no tienes que probar todas las combinaciones, te detienes cuando obtienes la que quieres. En promedio, lo golpearás después de haber agotado la mitad de las posibilidades. Podría tener suerte y acertar en su primer intento, o podría tener que pasar por cada combinación.
Ahora, para alcanzar un cierto número de secuencias, digamos 3, ¿cuánto tiempo lleva esto en promedio? No tres veces más, porque en la mayoría de los intentos, cada combinación garantizará que alcances esos 3. Pero tiene que ser más de la mitad del tiempo, ¿verdad? Bueno, ese es un problema de probabilidad divertido, te dejaré que lo averigües.