¿Y qué pasa con las penúltimas cifras?

Pensando en el sesgo detectado en las frecuencias de las últimas cifras de los primos que siguen a un primo de última cifra fijada, me preguntaba qué pasaba con las penúltimas cifras. Como en Mallorca esta semana aún estamos de vacaciones escolares (envidia cochina), he hecho un programilla en R para mirarlo. He creado una lista con los primeros 50 millones de primos (no, esta vez no la voy a colgar en el dropbox, ocupa más de 500 Mb; si os da pereza generarla, la podéis descargar con paciencia de “The first fifty million primes”), para cada uno de ellos me he quedado con su penúltima cifra y he calculado

  • la frecuencia relativa de esta penúltima cifra
  • la frecuencia con que una penúltima cifra de primo sigue a otra penúltima cifra de primo

Y los resultados son curiosos, al menos para mi teoría de números.

Vamos con las primeras: no hay sorpresas, cada penúltima cifra aparece aproximadamente en un 10% de los primos, con diferencias de más o menos 5 milesimas de punto porcentual.

Pero en las frecuencias condicionadas hay sorpresa, y además sorpresa regular: Si la penúltima cifra de un primo es x, entonces, independientemente de x, la probabilidad de que la penúltima cifra del siguiente primo sea (módulo 10)

  • x, es de un 16.7%
  • x+1, de un 33.4%
  • x+2, de un 21.1% o un 21.2%
  • x+3, de un 14.1%
  • x+4, de un 6.5%
  • x+5, de un 3.7% o un 3.8%
  • x+6, de un 2.4%
  • x+7, de un 1.1%
  • x+8, de un 0.6%
  • x+9, de un 0.4%

La tabla concreta, para 50 millones de primos, es

2016-03-29 09.58.10

Además, estas proporciones van variando a medida que tomamos más números primos, pero  siempre son más o menos independientes de la penúltima cifra x del primo “antecedente”.

Podéis descargar de aquí el fichero html con los resultados (las tablas para los primeros 10, 20, 30, 40 y 50 millones de primos), y de aquí el fichero Rmarkdown que lo ha producido (pero para ejecutarlo, necesitáis la lista de primos).

Ya digo, supongo que hay algún teorema que implique este comportamiento de las penúltimas cifras, pero mi teoría de números está oxidada.

 

Advertisements

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.

Poussy tiene un problema

Poussy es un gatito protagonista de unas tiras cómicas publicadas por Peyo (el padre de los Pitufos, de Johan y Pirluit, o de Benito Sansón, Benet Tallaferro para los que lo leíamos en Cavall Fort) entre 1949 y 1992, con diversos parones y delegando al final en miembros de su estudio. Durante mucho tiempo los tres álbumes que recogían sus aventuras han estado agotados y eran carne de coleccionista, pero, por suerte, al fin se ha publicado, en 2014 en Francia y en 2015 en España (tanto en catalán como en castellano) una edición integral de sus gags.

 

Hoy os traigo un problema a la Dan Meyer. Se trata de la tira número 72. El problema es: ¿A qué altura está colgado el jamón? (Clicad en la imagen para ampliarla)

poussy

Con esta entrada, Poussy y yo participamos en  la Edición 7.2 del Carnaval de Matemáticas que alberga La Aventura de la Ciencia.

Dos de cada tres estudiantes de la UIB, matriculados en carreras con muchos estudiantes. ¿Notición?

Estos días estoy meditando sobre aplicaciones de la paradoja de la amistad en el análisis de redes de interacciones de proteínas. Como Clara Grima ya explicó coj…mente esta paradoja en esta entrada de Cienciaxplora, voy a ahorraros los detalles. En todo caso, y en resumen, se trata del hecho que, para la mayoría de nosotros, nuestros amigos tienen, de media, más amigos que nosotros (y son más felices y más guapos que nosotros, y han ligado a lo largo de su vida más que nosotros y …). Por suerte, esto (normalmente) no tiene nada que ver con nuestra personalidad, sino que es un teorema de teoría de grafos atribuido a Scott Feld, que lo enunció, demostró y analizó en su artículo del 1991 titulado Why your friends have more friends than You do.

En realidad, esta paradoja viene de más lejos, de la llamada “paradoja del tamaño de la clase” que introdujeron el mismo Scott Feld y Bernard Grofman en un artículo de 1977 titulado Variation in class size, the class size paradox, and some consequences for students:

si escogemos al azar un estudiante de un centro, el tamaño esperado del curso en el que está matriculado es casi siempre estrictamente mayor que el tamaño medio de los cursos de su centro, y en todo caso nunca menor.

Además, en muchas distribuciones razonables de números de matriculados por curso, una gran mayoría de los estudiantes están matriculados en cursos más numerosos que la media (lo que les lleva, por comparación, al desánimo y al abandono de los estudios, según los autores; igual se lo podemos explicar a las comisiones de acreditación de los grados: “no es culpa nuestra que abandonen los estudios, es que no saben teoría de grafos y creen que son unos desgraciados por estar en cursos numerosos”).

Aquí viene la demostración. Sean x_1,\ldots, x_n los números de alumnos de los n cursos que ofrece un determinado centro. Entonces:

  • El valor medio de alumnos por curso es \overline{x}=(\sum_{i=1}^n x_i)/n
  • Pero si consultamos todos los estudiantes uno a uno y les pedimos cuántos estudiantes hay en su curso, y calculamos la media de los valores obtenidos, será otro cantar: para cada curso de x_i alumnos, habrá  x_i alumnos que contestarán “x_i”, por lo que cada respuesta  x_i aparecerá x_i veces. La suma total de respuestas será, por lo tanto, \overbrace{x_1+\cdots+x_1}^{x_1} +\cdots+ \overbrace{x_n+\cdots+x_n}^{x_n}=\sum_{i=1}^n x_i^2. La respuesta media por alumno (es decir, el número medio de matriculados en el curso en el que está matriculado un alumno escogido al azar), llamémosle \overline{x}_{al}, se obtendrá dividiendo esta suma por el número de respuestas:  \overline{x}_{al}=(\sum_{i=1}^n x_i^2)/(\sum_{i=1}^n x_i)

Si ahora restamos \overline{x}_{al}-\overline{x}=(\sum_{i=1}^n x_i^2)/(\sum_{i=1}^n x_i)-(\sum_{i=1}^n x_i)/n, un pequeño cálculo algebraico muestra que es igual a la varianza \mathrm{var}(x) de x_1,\ldots, x_n partido por su media \overline{x}. Y ahora es el momento de recordar que la varianza siempre es positiva, y es 0 sólo cuando x_1=\cdots=x_n. Por lo tanto, salvo en este caso, el número medio de matriculados en el curso de un estudiante escogido al azar será siempre mayor que el número medio de matriculados por curso. Y cuánto mayor sea la varianza, es decir, cuánto más variados sean los números x_1,\ldots, x_n, mayor será el cociente entre estas dos medias.

Vale, un experimento. He sacado de aquí los números de matriculados en los 30 grados de la UIB en el curso 2013-14 (los matriculados en dobles titulaciones los he contado en cada una de los grados involucrados). Estos números van de los 1228 matriculados en Administración de Empresas a los 93 matriculados en Matemáticas. He calculado el número medio de estudiantes por grado, \overline{x}, y el número medio de estudiantes matriculados en el grado de un estudiante aleatorio, \overline{x}_{al}. Los resultados (redondeados) han sido \overline{x}=366\overline{x}_{al}=593: un estudiante está matriculado de media en un grado de 593 estudiantes, pero el número medio de estudiantes por grado es de 366. Además, un 66.5% de los estudiantes de la UIB están matriculados en grados con un número de estudiantes mayor que la media. Es raro que algunos periódicos tradicionalmente críticos por defecto con la UIB no lo hayan publicado nunca.

El código R, por si queréis confirmar los números, es muy sencillo.

 ests.UIB=c(1228,1042,1028,623,612,560,497,467,432,412,400,351,339,
252,243,231,228,226,215,180,174,154,169,156,146,140,134,131,116,93)
#Media de alumnos por grado
mean(ests.UIB)
#Media de alumnos por grado desde el punto de vista del alumno
sum(ests.UIB^2)/sum(ests.UIB)
#Porcentaje de alumnos en grados más numerosos que la media
sum(ests.UIB[ests.UIB>mean(ests.UIB)])/sum(ests.UIB)

En cambio no sé cómo usar la paradoja de la amistad para explicar la percepción de los estudiantes de que sus amigos siempre tienen menos tareas que ellos para hacer en casa.