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