Lo confieso, yo también he caído en la tentación…

Supongo que la mayoría de los lectores de blogs sobre matemáticas ya os habréis enterado de la “anomalía” en la distribución de la última cifra de los números primos detectada por K. Soundararajan y R. L. Oliver (en la foto, copiada del artículo en Quanta Magazine que ha popularizado el resultado)  y  publicada en el arXiv hace unos 15 días. En todo caso, aquí viene un resumen rápido de la anomalía en cuestión, por si hay algún despistado.

PrimesResearchers

Salvo el 2, que es el único primo que termina en cifra par (cualquier otro número par forzosamente es compuesto), y el 5, que es el único primo que termina en 5 (cualquier otro múltiplo de 5 forzosamente es compuesto), el resto de los números primos terminan en 1, 3 7 o 9, y resulta que se reparten esta última cifra de manera uniforme: salvo el 2 y el 5, si tomamos todos los números primos hasta una cierta cantidad n grande, aproximadamente un 25% terminarán en 1, un 25% en 3, un 25% en 7 y un 25% en 9.  Las diferencias en los porcentajes son pequeñas (es el llamado sesgo de Chebyshev) y tienden a 0 a medida que n tiende a infinito.

Pues bien, Soundararajan y Oliver han observado que  la frecuencia con la que un número primo termina en la misma cifra que el número primo que le precede es mucho menor que la de cualquier otra de las tres cifras posibles (excluyo el 2 y el 5): aproximadamente sólo un 18% de los pares de primos consecutivos terminan en la misma cifra, en vez del (aproximadamente) 25% que se esperaría si las últimas cifras se distribuyeran de manera realmente uniforme. En todo caso, la desviación detectada respecto del 25% es mucho mayor que la de Chebyshev. En el artículo mencionado los autores no sólo publican las cifras relativas a esta anomalía para los primeros 100 millones de primos, sino que además la demuestran suponiendo verdadera una conjetura de Hardy y Littlewood.

En un artículo de E. Lamb  en Nature sobre el tema, Soundararajan dice que “Todas las personas a quienes se lo hemos explicado terminan escribiendo sus propios programas de ordenador para comprobarlo por ellas mismas”. Pues sí, yo también lo he hecho, con R y para 10 millones de primos. Y coincido con A. Granville (citado en el artículo en Quanta): encuentro asombroso que nadie se hubiera dado cuenta antes.

Como, además, tenía que realizar un pequeño vídeo en Jing para un curso sobre videotutoriales de la UIB, he aprovechado para matar dos pájaros de un tiro y grabar el experimento. Por desgracia, cuando ya estaba hecho he descubierto que no se pueda incluir un vídeo Jing en un blog WordPress de WordPress.com, así que si os interesa el vídeo, clicad en El vídeo del experimento. Y aprended de la experiencia: si queréis grabar un vídeo e incluirlo en un post, no uséis Jing y Screencast; colgadlo, por ejemplo, en Youtube.

En todo caso, os resumo el resultado del experimento numérico: a partir de un vector formado por los primeros 10 millones de primos (quitando los tres primeros y el último por razones técnicas obvias), obtengo la tabla siguiente, donde cada fila nos da la frecuencia relativa con la que, en mi vector, si un primo termina en la cifra de la fila, el siguiente primo termina en la cifra de la columna. Como podéis ver, en cada fila la probabilidad de que el siguiente primo repita la misma última cifra es mucho más baja que cualquiera de las otras tres. Por ejemplo, si un primo termina en 1, el siguiente termina en 1 un 18% de las veces, en 3 un 30% de las veces, en 7 otro 30% de las veces, y en 9 un 21% de las veces.

 

2016-03-27 21.31.27

El codigo usado (salvo en la primera línea) es el siguiente:

 
primos=scan("https://dl.dropboxusercontent.com/u/72911936/primers10m.txt")
primos[1:100]
primos=primos[-(1:3)]
primos[1:100]
f=function(x){x%%10}
prim.uc=f(primos)
prim.uc[1:100]
round(prop.table(table(prim.uc)),4)
prim2=prim.uc[-1]
prim1=prim.uc[-length(prim.uc)]
t=table(prim1,prim2)
round(prop.table(t,margin=1),4) 

Con la primera instrucción, se carga el fichero de los 10 millones de primos a partir de una copia que he dejado en mi dropbox. Para poderla ejecutar necesitáis una versión 3 y pico de R, y va a tardar un rato, porque son 93 Mb. Igual os conviene directamente guardar el fichero en vuestro directorio de trabajo y cargarlo con

 primos=scan("primers10m.txt") 

o generar vuestra propia lista de primos con vuestro programa favorito.

Y como llego a tiempo, pues nada, esta entrada también participa en  la Edición 7.2 del Carnaval de Matemáticas que alberga La Aventura de la Ciencia.

Advertisements

2 thoughts on “Lo confieso, yo también he caído en la tentación…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s