Páginas

domingo, 19 de febrero de 2017

2^31-1, lo mismo que 2147483647

Hoy buscábamos crear un vector tan grande como para colapsar a R. Es decir para sobrepasar el límite de memoria que R puede darse el lujo de alocar. Debía ser, según cálculos a los que no recuerdo cómo me caminó E, algo al rededor de ~ 2*10^9. La sección de Memory limits en la ayuda de R nos lo comprobó minutos después

2^31-1, lo mismo que 2147483647, llegó a escena porque es aproximadamente igual a
2*10^9 y porque noté que lo mencionaban específicamente en varios artículos sobre la memoria límite, como este. 2^31-1, para ser exactos, y no 2*10^9. ¿Por qué? La curiosidad me llevó a googlear tal número. Descubrí que hasta entrada de Wikipedia tiene, lo cual ya es ser nombre propio.

En Wikipedia, leanlo ustedes mismos pero resumido a continuación, aprendí que se trata del octavo Número primo de Mersenne.Y del valor máximo que un entero puede tener en las computadoras de 32 bits. Es decir las computadoras convencionales saben contar sólo hasta 2147483647. Por eso este número es el valor máximo de variables integrales en muchos lenguajes de programación (como R) y la puntuación máxima para muchos videojuegos. Por eso 2147483647 también es el máximo número de segundos que pueden contarse desde que inició el tiempo Unix (medianoche UTC del 1 de enero de 1970) hasta las 03:14:07 UTC del martes 19 de enero de 2038 (que corresponde a 2147483647 segundos desde el inicio de tiempo Unix).

2147483647 también es importante para las ciencias de la vida porque puede haber genomas más grandes que 2147483647 pares de bases. Esto quiere decir que la secuencia de tales genomas no pueden ser analizadas así como así. O por lo menos no sin que biólogos y científicos de la computación hubieran enfrentado el problema. Afortunadamente para algunas aplicaciones ya se ha hecho, y en otras hay trucos para darle la vuelta. Por eso 2^31-1 sonaba una campanita profunda en mi memoria. En algún lugar lo había leído y hoy aprovechamos conocernos mejor.

No hay comentarios: