lunes, 13 de mayo de 2019

Números primos con la misma suma o diferencia de cuadrados (2)


En la anterior entrada se estudiaron aquellos números primos que dan lugar a sumas de cuadrados equivalentes. En la presente se verá la misma cuestión con diferencias.


Diferencias de cuadrados


En el caso de buscar números que sean equivalentes a dos diferencias de cuadrados de números primos es más sencillo usar la diferencia k entre dos de esos primos. Incluimos un desarrollo algebraico que le da ese protagonismo a esa diferencia k.

Partimos de una suma por diferencia como equivalente a la diferencia de cuadrados. Si m=(a+b)(a-b). sustituyendo a por x+k y b por x, llamando k a la diferencia a-b, queda:

m=(x+k+x)(x+k-x)=(2x+k)k.

El valor mínimo de k es 2, ya que sería el caso de primos gemelos, luego k>=2 siempre será par, puesto que hemos excluido el número primo 2.

Por otra parte, 2x+k es un divisor propio de m, y también par, luego será menor o igual que m/2, y, a su vez, m será múltiplo de 4. Sólo los múltiplos de 4 pueden presentar la propiedad requerida.

2x+k=m/k<=m/2, luego x ha de ser menor o igual que m/4 y x+k<=m/4+k

Así queda el valor de x en función de k: x=(m/k-k)/2

Luego podemos construir el bucle de búsqueda con k entre los divisores pares de m, a fin de que sea entero m/(2*k).

Para cada valor de k, par, vemos si es divisor de m y entonces buscamos entre los impares, de x=3 hasta x=m/4 los que sean primos y también lo sea x+k

Estas consideraciones nos llevan a la siguiente función, en la que dados un número natural n y un número k de diferencias de cuadrados de primos, nos indica si ese número equivale a esas diferencias o no:

public function difeprimcuad$(n,k)
dim b, c,i,m,d
dim ca$

if n/4<>n\4 then difeprimcuad="NO":Exit function ‘Ha de ser múltiplo de 4

ca="" ‘Recogerá las soluciones en modo texto
m=0 ‘Contador de soluciones
b=int(sqr(n))+1 ‘Valor mínimo para el primer primo
d=int(n/4+2) ‘Valor máximo según los párrafos anteriores
for i=b to d
if esprimo(i) then ‘El minuendo de la diferencia ha de ser primo
c=int(sqr(i^2-n+1e-5)) ‘Posible sustraendo
if esprimo(c) and i^2=n+c^2 then m=m+1: ca$=ca$+" "+ajusta(i)+" "+ajusta(c)+" & "
‘Hay una solución más. Se recoge en ca$ y se incrementa el contador m
end if
next i
if m=k then difeprimcuad=ca else difeprimcuad="NO" ‘Si hay k soluciones, se recogen.
end function

Con esta función y un bucle de búsqueda obtenemos las primeras soluciones, acompañadas de las diferencias de cuadrados de primos que admiten:

72          11 7 &  19 17 &
360        23 13 &  47 43 &
432        31 23 &  109 107 &
528        37 29 &  47 41 &
768        67 61 &  193 191 &
888        43 31 &  113 109 &
960        53 43 &  241 239 &
1032      89 83 &  131 127 &
1080      37 17 &  271 269 &
1128      53 41 &  283 281 &
1272      59 47 &  109 103 &
1392      41 17 &  349 347 &
1488      43 19 &  97 89 &
1512      41 13 &  61 47 &
1608      73 61 &  137 131 &
1632      41 7 &  59 43 &
1728      43 11 &  433 431 &
1920      47 17 &  163 157 &

Están publicadas en http://oeis.org/A090788

72, 360, 432, 528, 768, 888, 960, 1032, 1080, 1128, 1272, 1392, 1488, 1512, 1608, 1632, 1728, 1920, 2088, 2112, 2232, 2352, 2400, 2448, 2568, 2688, 2808, 3048, 3168, 3240, 3288, 3480, 3648, 3768, 4008, 4032, 4128, 4248, 4272, 4392, 4488, 4512, 4992.

Con este código PARI, inspirado en la función anterior, se reproduce el resultado.

i=4; while(i<=5000, k=0; m=2; while(m*m<=i, if(i%(2*m)==0, a=(i/m-m)/2; b=a+m; if(isprime(a)&&isprime(b), k+=1)); m+=2); if(k==2, print1(i, ", ")); i+=4)



Por mera curiosidad, se incluyen a continuación los números que cumplen ser diferencia de cuadrados de primos de tres formas distintas. Basta sustituir k=2 en la función por k=3:

120        13 7 &  17 13 &  31 29 &
168        17 11 &  23 19 &  43 41 &
312        19 7 &  29 23 &  41 37 &
408        23 11 &  37 31 &  103 101 &
480        23 7 &  29 19 &  43 37 &
552        29 17 &  71 67 &  139 137 &
600        31 19 &  53 47 &  151 149 &
672        29 13 &  31 17 &  59 53 &
720        29 11 &  41 31 &  181 179 &
1008      37 19 &  43 29 &  67 59 &
1200      37 13 &  79 71 &  103 97 &
1800      43 7 &  59 41 &  227 223 &
2160      47 7 &  113 103 &  139 131 &
2472      109 97 &  311 307 &  619 617 &
2832      71 47 &  181 173 &  239 233 &
2880      61 29 &  89 71 &  149 139 &
3312      59 13 &  101 83 &  829 827 &
3672      61 7 &  71 37 &  461 457 &
4560      79 41 &  107 83 &  233 223 &
5040      73 17 &  83 43 &  149 131 &
5640      109 79 &  151 131 &  241 229 &
6120      79 11 &  103 67 &  107 73 &
6480      101 61 &  409 401 &  1621 1619 &
6528      83 19 &  113 79 &  547 541 &
7248      163 139 &  457 449 &  607 601 &
7320      137 107 &  193 173 &  613 607 &
7752      89 13 &  131 97 &  971 967 &
7872      89 7 &  139 107 &  659 653 &
8160      109 61 &  137 103 &  683 677 &
8352      101 43 &  241 223 &  2089 2087 &
8400      103 47 &  109 59 &  307 293 &

Puedes seguir con la cuestión para cuatro, cinco o seis diferencias. Basta cambiar la última condición k=2 en Basic o k==2 en PARI. En las siguientes sucesiones de OEIS tienes los listados:


Hay más, pero con estos ejemplos basta. Puedes indagar los casos de siete, ocho o más.

Correspondencias entre los que son suma y sus correspondientes diferencias:


Una cuestión curiosa es la extraer casos de la primera parte de esta entrada, sumas de cuadrados de primos, con los de la segunda, de diferencias de primos. Lo vemos con un ejemplo concreto:

410=19²+7²=17²+11²

Al ser distintos los sumandos, transponiendo términos, surgen dos grupos de diferencias iguales: 19²-17²=11²-7²=72

19²-11²=17²-7²=240

Así que del número 410, equivalente a dos sumas de primos distintos, obtenemos otros dos números, 72 y 240, que pertenecen a los casos de diferencias de cuadrados de primos. Ocurre también el hecho contrario, que de 72 o 240, transponiendo términos, podemos obtener un caso de suma de cuadrados de primos. La correspondencia es múltiple y no siempre recíproca, por lo que sólo podemos constatar qué números de un grupo se relacionan con el otro.

No se incluyen los listados que se han usado para establecer correspondencias entre un conjunto y otro. En este listado se pueden apreciar los casos de diferencias de cuadrados de primos que se extraen de los de sumas múltiples de cuadrados

Correspondencias entre los que son suma y sus correspondientes diferencias:

338        120  120
410        240  72
578        240  240
650        240  168
890        480  312
1010      792  120
1130      672  120
1490      840  408
1730      1320  312
1802      840  720
1898      1320  480

Por ejemplo, 1730=41²+7²=37²+19², y transponiendo términos:

41²-19²=37²-7²=1320

Y también

41²-37²=19²-7²=312

Podemos seguir las rutas opuestas, desde los que son diferencia de cuadrados a las correspondientes sumas.

Por ejemplo, 72=11²-7²=19²-17² y transponiendo:

11²+17²=7²+19²=410, que pertenece a nuestro primer listado.

Aunque las correspondencias no son biunívocas, con paciencia se pueden construir cadenas. Lo dejamos ahí.


lunes, 6 de mayo de 2019

Números primos con la misma suma o diferencia de cuadrados (1)


Muchas entradas de este blog se inician en los cálculos sobre fechas que publico en Twitter. El día 28/4/18 presentaba la propiedad de que 

28418=23²+167²=43²+163²

es decir, que 28418 equivale a una suma de cuadrados de números primos de dos formas distintas. Si en esta igualdad de sumas transponemos cuadrados, se convierte en la igualdad de diferencias. 

Así, 167²-163²=43²-23², y 167²-43²=163²-23².

Estudiaremos en esta entrada qué números equivalen a la suma de cuadrados de números primos y separadamente, los que equivalen a diferencias, en ambos casos de dos o más formas distintas. Terminaremos el estudio con algunas relaciones entre ambos.

Así que las equivalencias entre sumas y las diferencias, como es evidente, están relacionadas. Esto excluye al número primo 2, por lo que en lo que sigue sólo intervendrán primos impares. Comenzamos con la suma de cuadrados.

Números equivalentes a dos sumas de cuadrados de primos


 Estos números están publicados en http://oeis.org/A226539

338, 410, 578, 650, 890, 1010, 1130, 1490, 1730, 1802, 1898, 1970, 2330, 2378, 2738, 3050, 3170, 3530, 3650, 3842, 3890, 4010, 4658, 4850, 5018, 5090, 5162, 5402, 5450, 5570, 5618, 5690, 5858, 6170, 6410, 6530, 6698, 7010, 7178, 7202, 7250, 7850, 7970, …

Como en este blog se usa la hoja de cálculo, se puede intentar reproducirlos con una función apropiada en el Basic de Excel o LibreOffice Calc. Puede ser la siguiente, en la que n es el número a analizar y k el número de sumas de cuadrados de primos que sean equivalentes. El resultado es el listado, en forma de cadena de texto, de los primos de cada par o la palabra “NO” si no existen soluciones.

public function sumaprimcuad$(n,k)
dim  b, c,i,m
dim ca$

ca="" ‘Cadena vacía que recibirá las soluciones
m=0 ‘Contador de soluciones
b=sqr(n/2) ‘Tope para ensayar primos
for i=1 to b ‘La variable i recorre los valores de los primos
if esprimo(i) then
c=int(sqr(n-i^2+1e-5)) ‘Se investigará si el segundo sumando es primo
if esprimo(c) and i^2+c^2=n then m=m+1: ca$=ca$+" "+ajusta(i)+" "+ajusta(c)+" & "
end if ‘Si hay solución se incrementa m y se copia en ca$
next i
if m=k then sumaprimcuad=ca else sumaprimcuad="NO"
end function

Aplicando esta función a un bucle de búsqueda se obtienen las primeras soluciones para el caso k=2, que es el que nos interesa en este estudio. Cada solución viene acompañada de sus dos pares de primos:

338        7 17 &  13 13 &
410        7 19 &  11 17 &
578        7 23 &  17 17 &
650        11 23 &  17 19 &
890        7 29 &  19 23 &
1010      7 31 &  13 29 &
1130      13 31 &  17 29 &
1490      11 37 &  23 31 &
1730      7 41 &  19 37 &
1802      11 41 &  29 31 &
1898      7 43 &  23 37 &
1970      11 43 &  17 41 &
2330      11 47 &  31 37 &
2378      13 47 &  23 43 &
2738      23 47 &  37 37 &

Coinciden con los primeros publicados en OEIS. Llama la atención ver que alguna de las soluciones contiene primos repetidos, como la última, en la que se repite el 37.

La ventaja de disponer de una función es que la podemos aplicar a números grandes sin tener que recorrer los previos.

Factores primos de las soluciones


 A la lista de los primeros números encontrados hemos añadido más abajo las dos sumas de cuadrados de primos y la descomposición factorial. Esta última es interesante porque de ella depende que existan dos o más descomposiciones en  suma de cuadrados (sean o no de primos). En una entrada antigua de este blog reproducíamos la fórmula de Gauss para contar esas sumas.

En ella se exigía que si figuran primos del tipo 4k+3, estos estuvieran elevados al cuadrado. En el listado de más abajo observamos que esto ocurre en 338, que contiene 13 al cuadrado, y en 578, con el cuadrado de 17:

338        7 17 &  13 13 &                [2,1][13,2]
410        7 19 &  11 17 &                [2,1][5,1][41,1]
578        7 23 &  17 17 &                [2,1][17,2]
650        11 23 &  17 19 & [2,1][5,2][13,1]
890        7 29 &  19 23 &                [2,1][5,1][89,1]
1010      7 31 &  13 29 &                [2,1][5,1][101,1]
1130      13 31 &  17 29 & [2,1][5,1][113,1]
1490      11 37 &  23 31 & [2,1][5,1][149,1]
1730      7 41 &  19 37 &                [2,1][5,1][173,1]
1802      11 41 &  29 31 & [2,1][17,1][53,1]
1898      7 43 &  23 37 &                [2,1][13,1][73,1]
1970      11 43 &  17 41 & [2,1][5,1][197,1]
2330      11 47 &  31 37 & [2,1][5,1][233,1]
2378      13 47 &  23 43 & [2,1][29,1][41,1]
2738      23 47 &  37 37 & [2,1][37,2]
3050      29 47 &  37 41 & [2,1][5,2][61,1]
3170      19 53 &  31 47 & [2,1][5,1][317,1]
3530      7 59 &  41 43 &                [2,1][5,1][353,1]
3650      13 59 &  29 53 & [2,1][5,2][73,1]
3842      11 61 &  19 59 & [2,1][17,1][113,1]
3890      13 61 &  41 47 & [2,1][5,1][389,1]
4010      17 61 &  23 59 & [2,1][5,1][401,1]
4658      13 67 &  43 53 & [2,1][17,1][137,1]

Se observa que aparte del factor 2, presente por ser números pares, el resto, suele tener otros dos factores, ya sean repetidos, como en 2738=2*37², o bien distintos, como en el caso de 2378=2*29*41. Hay otros, y eso los hace interesantes, que poseen tres factores más, como 3050=2*5²*61. En estos casos aparecerán nuevas sumas de cuadrados, pero ya no tienen que tener base prima.

En efecto, 3050=29²+47²=37²+41²=5²+55²

La última suma es claramente de bases no primas, que no intervienen en la cuestión que estamos estudiando.

Podemos pasar esta función a PARI, y obtener así un listado más compacto de las soluciones:

for(n=2,10000,m=0;b=sqrt(n/2);for(i=2,b,if(isprime(i),c=truncate(sqrt(n-i^2+1e-5));if(isprime(c)&&(i^2+c^2==n),m+=1)));if(m==2,print1(n,", ")))

Con este código se pueden obtener los números desde el 2 hasta el 10000 contenidos en http://oeis.org/A226539



Números con tres descomposiciones


Si en la función dada hacemos k=3 obtendremos los números que admiten su descomposición en tres sumas de cuadrados de números primos. Puedes intentarlo con la herramienta referida. Los primeros casos son:

2210     19 43 &  23 41 &  29 37 &
3770      7 61 &  17 59 &  31 53 &
5330     17 71 &  29 67 &  43 59 &
6290      7 79 &  31 73 &  53 59 &

Están publicados en http://oeis.org/A226562

2210, 3770, 5330, 6290, 12818, 16490, 18122, 19370, 24050, 24650, 26690, 32810, 33410, 34970, 36530, 39650, 39770, 44642, 45050, 45890, 49010, 50690, 51578, 57770, 59450, 61610, 63050, 66170, 67490, 72410, 73610, 74210, 80330, 85202, 86210, 86330, 88010,...

Podríamos seguir con los que admiten cuatro descomposiciones o más, pero lo dejamos como ejercicio, que no es difícil disponiendo de la función que hemos presentado.

En la siguiente entrada estudiaremos la misma cuestión, pero con diferencias.

martes, 23 de abril de 2019

Simulaciones - La distribución binomial


Continuamos la serie de entradas sobre simulaciones de distribuciones estadísticas. Hoy llegamos a la distribución binomial. Como en toda la serie, y ese es uno de sus objetivos, usaremos la hoja de cálculo Simulador. Aunque la hayas descargado en otra ocasión, es conveniente que lo vuelvas a hacer, pues se le han añadido nuevas prestaciones, como la imitación de la máquina de Galton con probabilidad prefijada.

Se encuentra en las direcciones


Versión LibreOffice: 


y la puedes descargar para tu uso.

Distribución binomial

 Esta importante distribución se aplica a pruebas repetidas de la ley de Bernouilli


con las siguientes condiciones:

a) Se realizan experimentos repetidos del tipo Bernouilli, n en total.
b) La probabilidad p permanece constante en todos ellos
c) Cada experimento es independiente del resultado anterior.

Llamamos a n el número de intentos. Estamos interesados en estudiar el número de veces que aparece el suceso A (éxito). A su número de ocurrencias le llamaremos número de éxitos.

Por tanto la ley binomial se aplicará cuando repetimos un experimento cumpliendo las condiciones a), b) y c) establecidas y deseamos estudiar el número de éxitos que obtendremos. Son de este tipo las tiradas múltiples de monedas, de dados, de ruleta, ...

La probabilidad de obtener r éxitos en n intentos se demuestra que equivale a


En  ella el paréntesis es el número combinatorio n sobre r. Del hecho de que esta fórmula sea muy similar a la del Binomio de Newton proviene el nombre de binomial.

La media (esperanza matemática) de esta distribución viene dada por

y su varianza por


Consecuencia de esta es una fórmula que nos será muy útil, y es la de su desviación típica, que viene dada por

La distribución binomial de probabilidad p y número de intentos n se representa generalmente por B(n,p)

Puedes completar su estudio en


Uso de la hoja Simulador

 Comenzamos con un ejemplo, para estudiar la forma de plantear una simulación de este tipo. Habrá que concretar algunos parámetros, al igual que se hizo en simulaciones anteriores.

Tiramos 100 veces tres monedas. ¿En cuántas de ellas esperamos obtener tres caras?

La distribución binomial contiene decisiones automáticas en el Simulador, por lo que sólo hay que fijarle los siguientes parámetros:

·        Número filas y columnas: 100 filas y una columna (en este caso)
·        Tipo de simulación: Binomial (usa el desplegable)
·        Número de intentos: Lo escribes como parámetro A. En este caso son 3.
·        Probabilidad: Se escribe como parámetro B. Si deseas usar fracciones, escribe delante el signo =. Así, en el ejemplo escribiríamos =1/2.

El resto de parámetro lo rellena la hoja.

En la imagen observamos que ha fijado el número de intervalos en 4, para contar con el 0.


Los parámetros que no cambian se ignoran, como por ejemplo, 2 y 77.

Pulsamos sobre el botón “Simulación” y obtenemos los resultados de la simulación:

Número de veces en el que resultan tres caras:


Nos resultan 11 veces. Repetimos simulación y obtenemos 14, 16, 13, 14, 9, 17,…Esta variabilidad confirma lo peligroso de obtener conclusiones con solo 100 repeticiones. La simulación siempre es orientativa, pero se debe efectuar con más ensayos.

En este caso binomial también se pueden consultar los intervalos en la segunda hoja. Escribimos como extremos a y b el mismo número esperado de caras, 3, en la primera columna y nos devuelve el número de casos obtenido. En la imagen no aparece el 11, sino 16, porque corresponde a otra simulación:



Estudio con funciones de hoja de cálculo

Otra forma de responder a la cuestión es mediante las funciones estadísticas de Excel y Calc. Aquí estaría indicada DISTR.BINOM.N(X;N;P;Tipo) En ella escribimos los parámetros siguientes:

·        X es el punto en el que deseamos consultar la distribución, el resultado que esperamos. En este caso sería x=3, porque esperamos tres caras.
·        N es el número de intentos, que aquí también es 3.
·        P representa la probabilidad, que en monedas es 0,5
·        Tipo indica si la distribución es acumulada o no. Si su valor es 1, la distribución es acumulada y con 0 sin acumular. En el ejemplo deseamos no acumular. Sólo nos interesa el caso de 3 caras.

La escribimos en una celda y obtenemos: DISTR.BINOM.N(3;3;0,5;0)=0,125
Luego para 100 tiradas, el valor esperado sería 12,5. En la simulación obtuvimos 11, 14, 16, 13, 14, 9, 17,…Esto da idea de la variabilidad que presenta nuestra simulación.

Póquer con dados

En el juego familiar de póker con cinco dados, obtendremos póquer cuando cuatro de ellos marquen un mismo valor. Estudiaremos el caso en el que aparezcan en la primera tirada, sin comodín y sin acudir a otras tiradas, un póquer de reyes, por ejemplo. Se considera un suceso difícil. Lo simulamos:

·        Tipo: Binomial
·        Parámetro A: 5 dados
·        Parámetro B: Probabilidad 1/6 (lo escribimos como =1/6 y obtendremos 0,1666…)
·        Repeticiones: 500



Con ese número de repeticiones, no resultan en la simulación ni póquer de reyes ni repóquer:



Las frecuencias del 4 y el 5 son nulas, luego nuestra intuición de que son sucesos improbables no iba descaminada. Sobre el 500 escribimos un 2, para obligar a repetir la simulación dos veces.



Esta vez, con 1000 intentos sí se ha conseguido un póquer de reyes en una de las tiradas:


Aquí hemos trabajado con un solo valor en el resultado (reyes), pero el póquer puede salir con cualquier valor, lo que, al ser sucesos disjuntos, multiplicaría por 6 la probabilidad, pero es tan pequeña, que la simulación vale para darnos una idea de su dificultad.

Un ejemplo con intervalos

En un bombo de lotería se han introducido 100 bolas, numeradas del 00 al 99, con lo que todas las decenas figuran con 10 elementos. La probabilidad de obtener a ciegas una bola cuyo número comience por 3, será de 10/100=0,1
Imaginemos que 200 personas van sacando 10 bolas con reposición y contando las veces en las que obtienen un 3 en las decenas. ¿Cuántas de ellas esperaríamos que obtengan entre 3 y 10 éxitos?


El planteo sería:

·        Una repetición con 200 filas (200 personas)
·        Número de intentos: 10
·        Probabilidad: 1/10


Preparamos los intervalos de la segunda hoja para contar entre 3 y 10. Iniciamos la simulación y obtenemos:


Nos dan 9 casos, con una frecuencia relativa de 0,045. Fijamos ahora el experimento con 10 repeticiones (parte alta del cuadro de parámetros), pero en este caso el botón de intervalos no nos sirve, porque funciona sobre las filas de la simulación, pero no acumula. Mejor es leer las frecuencias de la tabla y sumar:



Entre 3 y 10 se han obtenido 124+17+3=144, que comparado con 2000 repeticiones nos da una frecuencia relativa de 144/2000=0,072, que parece más ajustada a la realidad que el 0,045 que obtuvimos con una sola tirada.

Podemos acudir a la función DISTR.BINOM.N(). En este caso restaremos la función acumulada en 10 de la acumulada en 2:

DISTR.BINOM.N(10;10;0,1;1)-DISTR.BINOM.N(2;10;0,1;1)=0,07019
Se observa, como era de esperar, que la frecuencia en la simulación repetida (0,072) se acercaba más al valor teórico (0,07019).

Aproximación a la normal

Se sabe que la distribución binomial se acerca a la normal bajo ciertas condiciones. Puedes repasar esta cuestión en 


Normalmente se piensa en la distribución normal cuando el valor de p es cercano a 1/2 y N tiende a infinito, aunque se suele obtener una buena aproximación práctica para N>30. Todo esto es un poco empírico, y se basa en el Teorema de Moivre, que puedes consultar en 


Ahí también se incluyen otros consejos para poder usar esta aproximación. Sólo queda indicar que la distribución normal límite poseería la misma media y desviación típica que la binomial.

Para ilustrar este ajuste, elegimos una binomial de 10 intentos y probabilidad 0,5, la simularemos en 100 filas con 10 repeticiones:



Con estas condiciones la media es 5 y la desviación típica 1,5811. Procedemos a la simulación y obtenemos, efectivamente, un resultado que se aproxima a la distribución normal:



Podemos estudiar el ajuste mediante la función =DISTR.NORM.N(x;M;D;0), que da la frecuencia para un valor dado en la distribución normal de media M y desviación típica D. Hemos incrementado el número de elementos a 1000, dejando en 10 el de repeticiones. A la tabla de frecuencias le hemos añadido esta función de Excel, con el siguiente resultado:



El buen ajuste se puede observar entre la columna de simulación y la de normal. La columna intermedia proviene de la función =DISTR.NORM.N(x;5;1.5811;0) y la última se ha creado multiplicando por N, que aquí es 10000.

Gráficamente se percibe mejor el buen ajuste:



La máquina de Galton como curiosidad

En la nueva versión del Simulador se ha añadido una hoja nueva con el experimento de Galton. Este modelo ya se ofrecía en nuestro curso de Estadística y en otros materiales, pero la nueva versión admite fijar una probabilidad que no tiene que ser necesariamente 1/2. De esta forma se puede visualizar una distribución binomial no centrada en la máquina. Lo puedes ver en esta imagen, correspondiente a p=0,7:



Observamos su sesgo hacia la derecha y su ajuste razonable a la distribución binomial teórica. En el gráfico se observa mejor el ajuste:



Con esto dejamos el tema de la simulación binomial. Se podía extender algo más, pero alargaría el texto.




jueves, 11 de abril de 2019

Suma de cuadrados de cifras (6) - Casos particulares


Llegamos hoy a la sexta entrada dedicada a la suma de los cuadrados de las cifras de un número. A esta seguirán otras, hasta completar una publicación más extensa.


Por tratar de casos particulares, es inevitable que esta entrada contenga mucha casuística, por lo que se desarrollarán más extensamente los primeros casos, reduciendo a meras referencias los últimos.

Suma cuadrada

En la tercera entrada de esta serie vimos los casos en los que la suma de cuadrados de las cifras es también cuadrada.


A continuación desarrollaremos algunos casos particulares de esta propiedad. 

Todas las sucesiones estudiadas serán partes de la general http://oeis.org/A175396

Cuadrados

Comenzamos con el caso más natural, y es que el número con suma cuadrada sea a su vez cuadrado. Estos números están publicados en http://oeis.org/A061090

Con nuestra función sumacifras(n;k) , que puedes consultar en la primera entrada de la serie, (http://hojaynumeros.blogspot.com/2018/11/suma-de-cuadrados-de-cifras-1-un.html) es fácil crear una búsqueda en la que tanto el número buscado como la suma de los cuadrados de sus cifras sean también cuadrados. Podría ser algo así:

For i = 1 to 100
a=i*i
b = sumacifras(a; 2)
If escuad(b) Then msgbox(a)
Next i

Con una rutina de búsqueda más elaborada hemos obtenido fácilmente el listado, que coincide con el publicado en A061090.



Listado publicado

1, 4, 9, 100, 400, 676, 841, 900, 1444, 4225, 10000, 24025, 40000, 42025, 42436, 43264, 66049, 67600, 84100, 90000, 109561, 119716, 144400, 155236, 239121, 244036, 248004, 252004, 335241, 355216, 362404, 373321, 422500, 643204, 664225

Como bien señala Charles R Greathouse IV, si un número pertenece a esta sucesión, también estará si lo multiplicamos por 100, ya que las cifras significativas no cambian.

El código PARI incluido en esta publicación resulta oscuro y no aprovecha mejoras habidas en este lenguaje, Proponemos otro:

for(p=1, 1000, b=p*p; a=norml2(digits(b)); if(issquare(a), print1(b,", ")))

Se comprende su funcionamiento con solo leerlo atentamente. Su resultado es



Primos

También están publicados los números primos con suma de cuadrados de cifras también cuadrada. Son estos:

2, 3, 5, 7, 43, 263, 269, 1153, 1531, 1933, 2063, 2069, 2287, 2609, 3319, 3391, 3511, 3931, 4003, 4441, 4801, 4889, 5113, 5399, 5939, 6029, 6067, 6203, 6469, 6607, 8849, 9133, 9539, 10111, 10177, 10513, 10531, 10771, 11149, 11213, 11273, 11321, 11491, 11503,…( http://oeis.org/A223035)

Los de una cifra pertenecen todos, como es evidente, y el siguiente, 43, corresponde a la terna pitagórica 42 + 32 = 52 = 25

Puedes reproducirlos con la función sumacifras(n;k):


También nos valdría este programa en PARI:

forprime(p=2, 10000, a=norml2(digits(p)); if(issquare(a), print1(p,", ")))

El uso de forprime simplifica mucho el código.

Triangulares

Para descubrir si un número N es triangular, basta ver que 8*N+1 sea cuadrado. Es una forma muy cómoda de descubrirlos. También podemos seguir la serie natural 1, 2, 3, 4,…y aplicarles la fórmula N(N+1)/2.

Aquí usaremos otro método, que es partir de 1 e ir añadiendo de forma recursiva, 2, 3, 4,…

1=1, 1+2=3, 3+3=6, 5+4=10, 10+5=15,…

Esta forma de generar números triangulares suele ser bastante rápida, y es la que usaremos en PARI:

p=1; q=2; while(p<=500000,  a=norml2(digits(p)); if(issquare(a), print1(p,", ")); p+=q; q+=1)

A la variable p se le va añadiendo q, que a su vez crece de 1 en 1. Así se generan los triangulares y después se suman los cuadrados de sus cifras y se investiga si la suma es cuadrada. El resultado es

0, 1, 3, 6, 10, 300, 2278, 6670, 10153, 27028, 28203, 33411, 35778, 40470, 44850, 58311, 62481, 66066, 105570, 113050, 143916, 144991, 151525, 155961, 181503, 198765, 199396, 204480, 213531, 220780, 239778, 241860, 248160, 271953, 279378, 333336, 348195, 381501, 392055, 431985, 461280, 479710,…(en la versión publicada se ha incorporado el cero, pues en OEIS se considera triangular, ya que 0=0*1/2)

Aquí también figuran, como ocurrió con los cuadrados, los triangulares de una cifra. Cualquier número de la sucesión será triangular y cuadrada la suma de sus cifras al cuadrado. Por ejemplo:

33411 es triangular, porque 33411=258*259/2, y la suma de los cuadrados de sus cifras es 9+9+16+1+1=36, un cuadrado.

Suma prima

 El caso general está publicado en http://oeis.org/A108662

11, 12, 14, 16, 21, 23, 25, 27, 32, 38, 41, 45, 49, 52, 54, 56, 58, 61, 65, 72, 78, 83, 85, 87, 94, 101, 102, 104, 106, 110, 111, 113, 119, 120, 126, 131, 133, 137, 140, 146, 159, 160, 162, 164, 166, 168, 173, 179, 186, 191, 195, 197, 199, 201, 203, 205, 207, 210,...

Como suele ocurrir en las sucesiones que estamos estudiando, si N está en la sucesión, todos los números cuyas cifras formen anagrama de las de N, también pertenecerán a la sucesión, Igual se puede afirmar de N*10^k. Así, si 38 pertenece a la sucesión, también estarán en ella 83, 380, 830, 3800, 8300,…Por tanto, esta sucesión es infinita.

Vemos algunos casos particulares.

Primos con suma prima

Están ya publicados en  http://oeis.org/A052034

11, 23, 41, 61, 83, 101, 113, 131, 137, 173, 179, 191, 197, 199, 223, 229, 311, 313, 317, 331, 337, 353, 373, 379, 397, 401, 409, 443, 449, 461, 463, 467, 601, 641, 643, 647, 661, 683, 719, 733, 739, 773, 797, 829, 863, 883, 911, 919, 937, 971, 977, 991, 997, 1013,...

Observa que los anagramáticos de un término, también pertenecen si son primos, como 113, 131 y 311.

Un ejemplo: 397 es primo, y 3^2+9^2+7^2=139, que es primo.

Podemos reproducir esta sucesión mediante el lenguaje PARI:

forprime(p=2, 10000, a=norml2(digits(p)); if(isprime(a), print1(p,", ")))


Triangulares con suma prima

Ya destacamos en la anterior cuestión que tenemos predilección por los números triangulares. Estos son los que presentan suma de cuadrados de cifras que es prima:

21, 45, 78, 120, 210, 276, 595, 780, 861, 1275, 1653, 2016, 2485, 2775, 3240, 3321, 3570, 3916, 4005, 4656, 6328, 7260, 7503, 9316, 9453, 9730, 10011, 11476, 12246, 12561, 13203, 15225, 15753, 16471, 16653, 17205, 17955, 18145, 19306, 19900, 20100, 20706, 21321, 21945, 22155, 22366, 22791, 23653, 23871, 24090, 24753,...

Vemos un ejemplo:

17205 es triangular, porque 17205=185*186/2, y 1^2+7^2+2^2+0^2+5^2=79 es primo.

El código PARI aprovecha la generación de triangulares como suma de los primeros números naturales:

(PARI) p=1; q=2; while(p<=25000,  a=norml2(digits(p)); if(isprime(a), print1(p,", ")); p+=q; q+=1)

Cuadrados con suma prima

Sorprendentemente, esta sucesión estaba inédita, a pesar de la sencillez de su definición. La inversa, primos con suma cuadrada sí está publicada en http://oeis.org/A223035

Los primeros números que cumplen esta condición son

16, 25, 49, 289, 324, 1369, 1521, 1600, 1936, 2209, 2304, 2500, 2601, 2809, 4900, 5929, 7569, 8649, 8836, 11025, 11881, 12321, 13225, 13689, 19881, 22201, 22801, 27556, 28900, 29929, 32400, 33489, 34596, 34969, 37636, 39601, 42849, 45369, 46656, 49284, 54756, 55225, 56169, 62001, 65536, 66564, 71289,...

for(p=1, 270, b=p*p; a=norml2(digits(b)); if(isprime(a), print1(b,", ")))

Suma triangular

Hay poco publicado, y tampoco parece que interese mucho, por lo que nos limitaremos a presentar los casos con algún comentario o código:

Los primeros números cuya suma de cuadrados es triangular son los siguientes

0,1, 6, 10, 13, 31, 36, 60, 63, 100, 103, 111, 112, 118, 121, 124, 130, 139, 142, 147, 174, 181, 193, 211, 214, 241, 244, 245, 254, 257, 275, 301, 306, 310, 319, 360, 391, 399, 412, 417, 421, 424, 425, 442, 452, 455, 458, 471, 485, 524, 527, 542, 545, 548, 554, 572, 584, 588, 600, 603, 630, 668, 669, 686, 696, 714, 725, 741,...

Se pueden generar mediante PARI:

for(p=0, 750, a=norml2(digits(p)); if(issquare(8*a+1), print1(p,", ")))

Dentro de ellos se pueden distinguir varios casos.

Triangulares con suma triangular

Los primeros son estos:

0, 1, 6, 10, 36, 630, 741, 1081, 2211, 7140, 10011, 10153, 13366, 15576, 17766, 23220, 24531, 25651, 28920, 33411, 42486, 47586, 52326, 59685, 61776, 69006, 112575, 113050, 121771, 125751, 128778, 129286, 146611, 156520, 163306, 165025, 167331, 185136, 202566, 207046, 211575, 219453, 221445, 222111, 231540, 235641, 237705, 243951,...

Ya están publicados en https://oeis.org/A094890

Por ejemplo, 741 es triangular (741=38*39/2) y la suma de cuadrados de cifras es 7^2+4^2+1^2=66, que también es triangular.

Puedes usar este código PARI

 p=0; q=1; while(p<=250000,  a=norml2(digits(p)); if(issquare(8*a+1), print1(p,", ")); p+=q; q+=1)

Primos con suma triangular

Los primeros son:

13, 31, 103, 139, 181, 193, 211, 241, 257, 421, 811, 1021, 1039, 1093, 1123, 1151, 1153, 1201, 1213, 1217, 1231, 1283, 1321, 1511, 1531, 1721, 1801, 1823, 1889, 2011, 2113, 2131, 2237, 2273, 2311, 2347, 2381, 2437, 2467, 2473, 2551, 2621, 2647, 2687, 2711, 2861, 3001, 3019, 3109, 3121, 3163, 3313, 3331, 3361, 3511, 3613, 3631, 3821,...

Su código:

forprime(p=2, 4000, a=norml2(digits(p)); if(issquare(8*a+1), print1(p,", ")))

Cuadrados con suma triangular

1, 36, 100, 121, 1024, 2401, 3136, 3600, 3844, 6724, 10000, 10201, 12100, 12769, 14161, 15376, 15625, 17689, 18769, 24649, 24964, 29584, 47089, 49729, 51529, 54289, 61504, 73441, 76176, 78961, 81796, 93636, 96721, 97344, 102400, 105625, 113569, 116964, 118336, 156025,...

Intenta construir un programa en PARI para ellos.

Aquí dejamos el recorrido de casos particulares en la suma de los cuadrados de las cifras. Como siempre, se ha preferido no abordar todos los casos a cansar a los seguidores con cálculos excesivamente parecidos.