Mostrando entradas con la etiqueta Dígitos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Dígitos. Mostrar todas las entradas

miércoles, 4 de septiembre de 2019

Sigue el mismo tipo al duplicar las unidades



El número 144 es cuadrado, 144=122, y si duplicamos su última cifra resulta otro cuadrado, pues 1444=38¿Ocurrirá esto con otros cuadrados? ¿Existirán ejemplos similares con números primos, triangulares y de otro tipo? Lo estudiamos.

Cuadrados
Los únicos cuadrados que presentan duplicadas sus dos últimas cifras son los terminados en 44 o en 00. No existirán casos con otras cifras. Lo vemos detenidamente:
Las terminaciones de los números cuadrados son 0, 1, 4, 5, 6 y 9. En los casos 1, 5, 6 y 9 es imposible la terminación en 11, 55, 66 o 99. En todos los razonamientos llamaremos a a la cifra de las decenas de la posible raíz cuadrada.
Un número terminado en 1 o en 9 no puede producir un cuadrado terminado en 11, pues si termina en a1, su cuadrado lo hará en (2a)1, y 2a no puede valer 1, y si termina en 9, el cuadrado de a9 terminaría en (18a+8)1, y tampoco podría terminar en 11. Desechamos, pues la terminación 11.
La 55 tampoco es posible terminación de cuadrado, pues si un número termina en a5, su cuadrado lo hará en (10a+2)5, y el paréntesis par no puede producir un 5 en las decenas.
Para producir un 66 la raíz cuadrada ha de terminar en a6 o en a4. En el primer caso el cuadrado terminaría en (12a+3)6, y el paréntesis no puede terminar en 6. En el otro caso sería (8a+1)6, que tampoco produce 66.
La 99 provendría de un número terminado en a3 o en a7, y su cuadrado terminaría en (6a)9 en el primer caso y (14a+4)9 en el segundo, lo que imposibilita el 99 como terminación.
La terminación en 00 para un cuadrado provendría de una raíz cuadrada terminada en 0. Hasta aquí bien, pero para la cuestión que nos ocupa debería también ser un cuadrado, con lo que tendría un número par de ceros, y al añadirle otro cero sería un número impar, que no podría ser cuadrado.
Por tanto, la única duplicación de unidades que produce un cuadrado es la 44. Si deseamos más casos además del 144 deberemos buscar entre los cuadrados terminados en 4.
Búsqueda de cuadrados del tipo dado
Lo iniciaremos en Basic de Excel para abordar el tema y extenderlo más tarde a otros casos. Usaremos la función sigueigual, que iremos adaptando a lo largo del estudio. Para cuadrados puede ser esta:
Public Function sigueigual(n) as boolean
Dim a, c

c = n Mod 10 ‘Encuentra la cifra de las unidades
If c <> 4 Then sigueigual = False: Exit Function ‘Si no termina en 4, lo dejamos
a = n * 10 + c ‘Formamos la duplicación de las unidades
If escuad(n) And escuad(a) Then sigueigual = True Else sigueigual = False
‘Si el número es cuadrado antes y después de duplicar, vale
End Function

La función escuad puede tener este código:
Public Function escuad(n) As Boolean
'Determina si n es un cuadrado

If n < 0 Then
escuad = False
Else
If n = Int(Sqr(n)) ^ 2 Then escuad = True Else escuad = False
End If
End Function

Probamos los primeros números con esta función y solo nos resulta la solución 144 y 1444, por lo que necesitamos una herramienta más potente, como el lenguaje PARI. Usaremos solo cuadrados, con lo que la búsqueda será más rápida. El listado que usaremos es este:
for(i=1, 1000000000, n=i*i; q=n%10; if( q==4, r=q+n*10; if(issquare(r),  print1(n,", ",sqrtint(n),", ",r,", ",sqrtint(r)))))
Para cada valor de la variable i forma su cuadrado n. Si termina en 4, se duplica la cifra de las unidades para formar la variable r y si es un cuadrado, hemos encontrado la solución. Con este código aparece la solución 144, 1444, y también dos más:
144, 12, 1444, 38, 432374632704, 657552, 4323746327044, 2079362, 899063381008862784, 948189528, 8990633810088627844, 2998438562,…
(Escribimos en cursiva las raíces cuadradas del término anterior)
Vemos que son escasos los cuadrados con esta propiedad. Con un poco de paciencia se podrían buscar más soluciones, pero con las tres dadas se advierte su rareza.
Estos números (los que son raíces cuadradas del segundo cuadrado, como 2998438562) pertenecen a la sucesión http://oeis.org/A239364, que son soluciones de la ecuación de Pell x2-10y2=4, que viene a exigir que al añadir un 4 a un cuadrado y2 se convierta en otro cuadrado x2, pero en la sucesión indicada figuran otras soluciones, que son las que no terminan en 44.

Primos

Podemos ir adaptando la función sigueigual según el tipo de números que estudiemos. En el caso de los primos podría ser:

Public Function sigueigual(n)
Dim a, c

c = n Mod 10
a = n * 10 + c
If esprimo(n) And esprimo(a) Then sigueigual = True Else sigueigual = False
End Function

Resultan estos primeros ejemplos, que, como vemos, son mucho más frecuentes que los cuadrados:
19, 23, 31, 43, 59, 67, 73, 97, 103, 127, 139, 149, 151, 173, 181, 193, 199, 211, 233, 239, 241, 263, 269, 271, 277, 283, 349, 353, 367, 373, 383, 409, 421, 479, 487, 499, 509, 523, 547, 571, 601, 613, 619, 631,…

Por ejemplo, 173 es primo y 1733 también.

Con PARI basta con un código muy simple:

forprime(n=2, 2000, p=(n%10)+n*10; if(isprime(p), print(n,", ")))

Puedes experimentar con él aumentando el rango de búsqueda, que en el listado va de 2 a 2000. Observa lo útil que es la instrucción forprime.

Triangulares

En el caso de los triangulares volvemos a la escasez de resultados. En la siguiente versión de sigueigual usamos la condición para que n sea triangular, y es que 8*n+1 sea cuadrado:

Public Function sigueigual(n)
Dim a, c

c = n Mod 10
a = n * 10 + c
If escuad(8 * n + 1) And escuad(8 * a + 1) Then sigueigual = True Else sigueigual = False
End Function

En una primera búsqueda obtenemos cuatro soluciones: 6, 66, 171 y 1540.
Para encontrar otros ejemplos necesitamos usar PARI, como es costumbre en este blog:

for(i=1, 10000000000, n=i*(i+1)/2;q=n%10;r=q+n*10; if(issquare(8*r+1), print1(n,", ")))

En primer lugar construimos un triangular mediante su definición, n=i*(i+1)/2, y después le adosamos el último dígito y comprobamos que sigue siendo triangular mediante la prueba issquare(8*r+1).

De esta forma obtenemos más soluciones:

6, 66, 171, 1540, 21454525, 43809480, 1395379509846, 5671003058155, 337549427259780, 39693585656707986,…

No son tan escasos como los cuadrados, pero se ve que aparecerán de forma aislada.

Oblongos

Ya que hemos recorrido los tipos más estudiados, completamos con alguno más. Por ejemplo, con los oblongos.

Como estos números son dobles de un triangular, el criterio del 8*n+1 que estudiamos anteriormente se modifica en que sea cuadrada la expresión 4*n+1. Así quedaría sigueigual:

Public Function sigueigual(n)
Dim a, c

c = n Mod 10
a = n * 10 + c
If escuad(4 * n + 1) And escuad(4 * a + 1) Then sigueigual = True Else sigueigual = False
End Function

Las dos primeras soluciones que nos da esta función, 342 y 3080, resultan ser dobles de dos soluciones para triangulares, como son 171 y 1540.

Si ampliamos usando PARI comprobamos que estos ejemplos son también escasos:

342, 3080, 225150, 87618960, 711635652, 6404720870, 182191536189390, 675098854519560,…

Con esto ya tenemos una idea de lo que da de sí esta cuestión. Lo dejamos aquí.



jueves, 12 de mayo de 2016

Rachas de dígitos


En Combinatoria es interesante el problema de las rachas, conjuntos de elementos consecutivos iguales. Por ejemplo, el conjunto AABBCDDDDEE posee cinco rachas; AA, BB, C, DDDD y EE. No se impone ninguna condición a la longitud de cada racha.

Aquí estudiaremos algunas rachas de dígitos que puede presentar un número entero. Distinguiremos tres tipos con sus estadísticas correspondientes y después particularizaremos en algunos casos, como primos, cuadrados o triangulares.

Tipos de racheado

Un número puede presentar los dígitos agrupados, es decir, con rachas todas de longitud mayor que 1, como pueden ser 3366677 o 112222. Le llamaremos número de tipo 1, o con “dígitos agrupados”.

Puede ocurrir que ningún dígito se agrupe con el siguiente, que equivale a afirmar que todas las rachas tienen longitud 1, como en 345643. Obsérvese que no se prohíbe que los dígitos se repitan, siempre que no sean consecutivos. Serán estos números los del tipo 2, o de “dígitos aislados”

Los restantes números presentarán rachas de longitud 1 y otras mayores, como en el caso de 1442 o 54322111. Les asignaremos el tipo 3, que es el menos interesante.

Independientemente de consideraciones combinatorias, podemos evaluar de forma aproximada la frecuencia que presenta cada uno de los casos. Usaremos una función en Visual Basic de hoja de cálculo, que, por su relativa complejidad, explicamos al final de la entrada.

El algoritmo que usa funciona en dos fases:

(1) Búsqueda de las rachas existentes entre los dígitos del número entero. En el listado del final puedes ver que se almacenan en una matriz r.

(2) Estudio de la longitud mínima y máxima de racha existente en el número.
Si la mínima longitud no es 1, los dígitos se presentan agrupados, y el entero será de tipo 1. Si la máxima es 1, no habrá agrupamientos, y el tipo será 2. Los restantes ejemplos serán de tipo 3.

Si te apetece, sigue estas fases en el listado VBA del final.

Frecuencias de los tipos

Mediante la función citada  y un contador adecuado, hemos observado que las frecuencias en los distintos intervalos son bastante parecidas a las de la tabla, obtenida en el intervalo (10000, 100000)



Se observa que son muy escasos los de tipo 1, con todos los dígitos agrupados, un 0,19%, los más frecuentes los del tipo 2, con dígitos aislados, con un 65,61%, quedando los del tipo mixto en una frecuencia intermedia del 34,20%. En otros intervalos las frecuencias son semejantes, ya que están basadas en propiedades combinatorias.

Justificar estas frecuencias puede resultar complejo, pero en el caso del tipo 1 no es difícil. Son 171 porque de dos cifras los únicos agrupados son 11, 22, 33,…99. Si le añadimos una cifra más, deberá ser idéntica a la última, luego, seguirán siendo 9: 111,222,…,999. Al llegar a cuatro cifras disponemos de dos caminos para construir los números de tipo 1: O bien añadimos dos cifras iguales por la derecha a los de dos cifras (incluido el cero), con lo que tendríamos 9*10=90 casos, como 1199, 2200,… o bien las añadimos por la izquierda (sin el cero), lo que daría 9*9=81 casos. Sumamos y obtenemos 90+81=171, que es lo que nos da la estadística.

En general, para una racha existen 9 posibilidades si ignoramos el 0. Para dos, 9*9, ya que ambas han de contener dígitos distintos, y para tres rachas, 9*9*9=729. Con una hoja nuestra sobre Combinatoria hemos calculado el número de rachas de cada tipo hasta 7 cifras, quedando esta tabla:



Todas las cantidades están comprobadas: 9 números de tipo 1 de dos cifras, 9 de tres, 90 de cuatro, 171 de cinco, 981 de seis y 2520 de siete.

¿Presentarán los distintos tipos de números frecuencias parecidas? Por ejemplo, ¿existirán más rachas con longitud superior a 1 en los cuadrados?¿y en los primos?...Nos dedicaremos, en plan lúdico, a estudiar diversos casos y observar, si existen, variaciones apreciables en las frecuencias.

Los cuadrados

Por este carácter informal que queremos darle a este estudio, nos limitaremos en todos los casos al intervalo (1, 100000), ya que con él basta para detectar curiosidades.

En ese intervalo sólo aparece el cuadrado 7744=88^2, y las frecuencias son



Prácticamente coinciden con el caso general. No aparece ningún otro cuadrado de ese tipo entre 1 y 500000. Estás invitado a buscar uno. Por cierto, si lo encuentras, deberá terminar en 00 o 44. Razónalo si te apetece.

Los primos

Establecemos el mismo intervalo, para ver si tampoco en este caso se aprecian diferencias importantes. Y no, resultan casi iguales a las anteriores:



Los 15 primos encontrados son: 11, 11177, 11777, 22111, 22277, 22777, 33311, 33377, 44111, 44777, 55333, 55511, 77711, 77999 y 88811. Como ves, son muy atractivos. Puedes ver más en http://oeis.org/A034873

Como en el caso de los cuadrados, sólo unas terminaciones son válidas: 11, 33, 77, 99, como es fácil entender.

Otros casos

Ya vamos sospechando que las frecuencias variarán poco. Lo vemos:

Triangulares

En este caso aumentan algo las frecuencias de tipo 1 y 2 en detrimento del 3:



Los cuatro triangulares de tipo 1 son muy sugestivos: 55, 66, 666, 2211, Tienes más en http://oeis.org/A116055

Oblongos

Como estos números son los dobles de los triangulares, presentan frecuencias similares, también con ligero predominio de los tipos 1 y 2 respecto al conjunto de todos los números.

En el intervalo (1,100000) sólo aparecen tres de tipo 1: 1122=33*34, 4422=66*67 y 9900=99*100. No están publicados los siguientes. Si te atreves…

Pentagonales

Aparecen tres de tipo 1:22, 8855 y 55777.

Pitagóricos

¿Qué longitudes de hipotenusas de triángulos de lados enteros aparecerán de tipo 1?

De este tipo aparecen muchos más, pues estarían entre ellos algunos múltiplos adecuados de 55, 111 y 100, que presentan rachas de al menos dos elementos. Estos son los primeros, con sus correspondientes catetos:



Aquí lo dejamos. Podemos analizar algunos más, pero vemos que las proporciones no cambian mucho. Es tan imprevisible la aparición de las cifras en los cálculos previos, que al reunir las frecuencias se llega a resultados muy similares.

Aquí tienes una tabla resumen:



ANEXO

Función para encontrar el tipo de agrupamiento de dígitos

Public Function tipoagrupa(n) 
Dim i, t, nr, l, maxr, minr
Dim r(20) ‘Esta variable contendrá las rachas
Dim sr$, c$, d$

sr$ = Str$(n)
sr$ = Right$(sr$, Len(sr$) - 1) + "$" ‘Convierte el número en un string adecuado
nr = 0
maxr = 1: minr = 1000 ‘Máxima y mínima longitud de racha
For i = 1 To 20: r(i) = 0: Next i
i = 1
l = Len(sr$)
While i < l ‘La variable i recorre los dígitos
nr = nr + 1
r(nr) = 1
c$ = Mid$(sr$, i, 1)
d$ = Mid$(sr$, i + 1, 1)
While c$ = d$ ‘Un dígito es igual al siguiente. Hay racha mayor que 1
r(nr) = r(nr) + 1
i = i + 1
c$ = Mid$(sr$, i, 1)
d$ = Mid$(sr$, i + 1, 1)
Wend
If r(nr) > maxr Then maxr = r(nr) ‘Toma nota de la racha máxima
If r(nr) < minr Then minr = r(nr) ‘Toma nota de la racha mínima
i = i + 1
Wend

t = 3 'En principio suponemos que el tipo es 3, caso mixto
If minr > 1 Then t = 1 'Tipo 1. Todos agrupados, porque las rachas son mayores que 1
If maxr = 1 Then t = 2  'Tipo 2. Todos aislados y rachas unitarias
tipoagrupa = t
End Function