Neil Sloane introdujo este término en su artículo [The persistence of a number, J. Recreational Math., 6 (1973), 97-98] En él define esta persistencia multiplicativa (existe otra muy popular, aditiva) de la forma siguiente:
Se
multiplican las cifras del número (aquí sólo veremos las de base 10) y se
reitera esta operación con los números obtenidos. Estos productos, como
veremos, formarán una sucesión decreciente, y se cuentan las iteraciones
necesarias hasta llegar a un producto de una sola cifra. Al número de esos
pasos se le denomina índice de persistencia multiplicativa, y al número
final resultante, raíz digital multiplicativa del número (existe otra
raíz digital aditiva).
Lo
vemos con un ejemplo: Iniciamos con el número 762. El producto de sus cifras es
84. Multiplicamos cifras de nuevo, resultando 32, y reiteramos:
762
– 84 – 32 – 6
El
que los productos sean decrecientes es fácil de entender. Si el número es de
una cifra, no hay producto y el índice lo definimos como 0. Si tiene dos
cifras, sean a y b se tiene:
N=10*a+b>10*a>a*b,
luego decrece.
Es
fácil usar el mismo razonamiento cada vez que se añada una cifra:
100a+10b+c>10*10*a>a*b*c
Y
así ocurrirá al ir añadiendo cifras.
Si
uno de los productos posee una cifra 0, se terminará el proceso y su raíz
digital valdrá 0. Paul Erdős sugirió ignorar los ceros en el producto, lo que
daría lugar a procesos totalmente distintos.
Si
dos números coinciden en sus cifras salvo en la cifra 1, tendrán la misma
persistencia, como ocurre con 65, 165, 56111,... porque el producto de sus
cifras es 30 en todos los casos.
Si
dos números son anagramáticos (mismas cifras con la misma frecuencia)
coincidirán también en sus resultados. Por tanto:
El
proceso de persistencia es invariante al orden de las cifras y a la presencia
de la cifra 1, con cualquier frecuencia.
Es
fácil entender que el coincidir en la persistencia creará clases de
equivalencia en los números naturales, e igual ocurrirá con los que coincidan
en la misma raíz digital. Serán clases distintas, e incluso podemos considerar
las clases en las que se coincida en los dos números, índice y raíz.
A
continuación traduciremos todo esto a los procedimientos de las hojas de
cálculo.
Para
estudiar este tema necesitamos varios procesos:
• Extraer
las cifras de un número dado
• Proceder
al producto de las cifras
• Construir
el algoritmo de iteraciones hasta llegar a la raíz digital
• Expresión
de los resultados, que pueden ser el índice de persistencia, la raíz digital o
una cadena de texto que unifique ambos.
Procederemos
por pasos.
Extracción de cifras
Este
`proceso es habitual en nuestros trabajos. Existen varias técnicas, y hemos
elegido esta:
Public
Function cifra(m, n)
'Extrae
la cifra n del número m si es natural. En caso contrario devuelve -1. También
devuelve -1 si excede del número de cifras
Dim a, bIf esnatural(m) Then ‘Actúa
sobre naturales
If n > numcifras(m) Then ‘La
función numcifras se añadirá a continuación
cifra
= -1
Else
a =
10 ^ (n - 1)
b =
Int(m / a) - 10 * Int(m / a / 10) ‘Procedimiento de troceado
de la cifra
cifra = b
End If
Else
cifra = -1
End If
End Function
Conteo de las cifras
Public Function numcifras(n)
Dim nn, a
'Calcula el número de cifras enteras de un número
natural. Si no lo es, devuelve un cero
If esnatural(n)
Then
a = 1: nn = 0
While a <= n
a = a * 10: nn = nn + 1 ‘Va
multiplicando por 10 hasta llegar a n
Wend
numcifras = nn
Else
numcifras = 0
End If
End Function
Producto de cifras
Si
poseemos una forma de extraer las cifras y otra de contarlas, construir su
producto es fácil:
Public Function
producifras(n)
Dim a, b, p, i
p = 1 ’Recogerá el producto
a = numcifras(n) ’Se
cuentan las cifras
For i = 1 To a
p = p * cifra(n, i) ’Construcción
del producto
Next i
producifras = p
End Function
Todas las funciones presentadas, aunque están escritas para VBasic, tienen traducción inmediata a otros lenguajes de programación.
Una
vez que contamos con la función producto, es fácil organizar el proceso de
persistencia. En un primer paso fijaremos que el resultado del proceso se nos
devuelva en modo texto con todos los pasos y resultados. Para estadísticas
cambiaremos el resultado o bien sólo al índice o a la raíz digital. La función
correspondiente puede ser esta:
Cálculo de la persistencia
Function persistencia$(n) ‘Resultado
en modo texto
Dim s$
Dim a, q
s = Str$(n) + ", " ‘Inicio
del resultado
a = n ‘Variable que recoge
el valor de n
q = 0 ‘Inicio del índice
para números de una cifra
While numcifras(a) > 1
a = producifras(a) ‘Proceso
de persistencia
s = s + Str$(a) + ", " ‘Incorporación
al resultado
q = q + 1
Wend
s = s + "Índice: " + Str$(q) +
" Raíz digital: " + Str$(a) ‘Creación del
resultado
persistencia = s
End Function
Con esta función obtenemos el historial completo del proceso. En la siguiente tabla hemos elegido un intervalo de números al azar:
Se percibe un desequilibrio en los resultados. Es evidente la gran mayoría de resultados con raíz digital cero, pues la presencia de esa cifra detiene el proceso. Respecto a los índices, ninguno es mayor que 3. Escasean los índices mayores. Por ejemplo, el índice 11 no aparece hasta el número 10233.
Hemos
construido una tabla de frecuencias para las raíces digitales del 0 al 9999,
para hacer patente el desequilibrio entre ellas:
Aparte del caso del 0, es lógico que las frecuencias de 3 y el 7 sean tan pequeñas, pues muy pocos productos desembocarán en ellas. En el caso del
7,
basta observar qué números desembocan en él:
17,
71, 117, 171, 711, 1117, 1171, 1711, 7111
También
esta lista justifica el resultado del 9, porque todas las posibilidades de
combinar la cifra 1 con la 7 son 2+3+4=9. Es fácil generalizar este resultado a
más cifras.
Persistencia con potencias de cifras
El producto de cifras se puede construir con potencias de las mismas. Hablaríamos entonces de k-persistencia multiplicativa. Todos los números, salvo los “repunits”,1, 11, 111, …que tienen k-raíz digital 1, todos los demás poseen raíz 0. Lo hemos comprobado modificando nuestra función. Este hecho resta interés a este concepto.
No hay comentarios:
Publicar un comentario