jueves, 3 de abril de 2025

Bases, índices y resultados anagramáticos

En la entrada anterior se buscaron números con cifras simétricas, en los que bases, índices u órdenes también fueran simétricos, como los cubos 1334633301=1101^3 y 1033364331=1011^3, que son simétricos y también sus bases.

Ahora ampliaremos las condiciones y, en lugar de exigir simetría, buscaremos números anagramáticos (con las mismas cifras). Un ejemplo sería el par de cuadrados 1302=16900 y 3102=96100. No son simétricos en sus cifras, pero sí poseen las mismas.

Si en la anterior búsqueda se usaba la función propia de este blog CIFRAINVER, en esta nueva será útil CIFRAS_IDENTICAS, que determina si dos números poseen las mismas cifras con frecuencias idénticas, de forma que los repetidos en uno también lo estén en el otro. Se puede estudiar su codificación en la entrada de este blog https://hojaynumeros.blogspot.com/2020/11/consecutivos-con-las-mismas-cifras.html.

En el caso de las cifras simétricas, cada número sólo se podía corresponder con su simétrico, pero en este caso pueden existir múltiples soluciones anagramáticas, por lo que deberemos introducir un contador de soluciones.

Usaremos la función ANA_ANA para investigar este caso:

Function ana_ana$(n)
Dim i, m
Dim s$

s = ""  ‘Contenedor de soluciones
m = 0  ’Contador
For i = 1 To n – 1 ‘Aquí usamos la función para cubos
If cifras_identicas(n, i) And cifras_identicas(n ^ 3, i ^ 3) Then m = m + 1: s = s + " # " + Str$(i) ‘Si son anagramáticos, se publica
Next i
If s = "" Then s = "NO" Else s = ajusta(m) + " # " + s
ana_ana = s
End Function

Esta función, tal como está, busca el caso de cubos anagramáticos. Un sencillo cambio en la línea que contiene la función CIFRAS_IDENTICAS la habilita para otros casos. El resultado es:

 


Observamos que el número 1100 presenta dos soluciones. Es posible que esta sucesión no esté publicada.

Caso de cuadrados

Si cambiamos los cubos por cuadrados en la función ANA_ANA obtenemos

 


Como ocurre con otros tipos, aquí pueden aparecer varias soluciones, como en 210 y 310. Es que la condición de igualdad de cifras es menos restrictiva que la de simetría.

Números primos

En el caso de los números primos bastará incluir en la función ANA_ANA la función PRIMNUM(N) o PRIME(N). Resultan bastantes ejemplos por rango, siendo el primero el par (37, 73) de Sheldon, que ya estudiamos en la entrada anterior. Lo que ocurre ahora es que, al ser la condición menos exigente, se obtienen más resultados. En hoja de cálculo el proceso se hace lento, pero en PARI la velocidad de proceso es aceptable.

La siguiente tabla se ha confeccionado con los resultados de PARI. Se han ordenado de esta forma: Índice 1, Primo 1, Índice 2, Primo 2.

I1,   P1,   I2,   P2

21, 73, 12, 37
163, 967, 136, 769
423, 2927, 342, 2297
474, 3361, 447, 3163
821, 6311, 218, 1361
823, 6323, 382, 2633
921, 7211, 912, 7121
1053, 8423, 1035, 8243
1642, 13901, 1426, 11903
1765, 15107, 1756, 15017

En el lenguaje PARI es muy sencillo detectar números anagramáticos.

Basta exigir vecsort(digits(m))==vecsort(digits(n)), de fácil comprensión: “Si ordenamos las cifras de ambos números nos resulta el mismo vector”.

Con este código se obtienen resultados fácilmente en la web de PARI

ok(m,n)=vecsort(digits(m))==vecsort(digits(n))&&vecsort(digits(prime(n)))==vecsort(digits(prime(m)))&&n%10<>0&&m%10<>0
for(i=2,2000,for(j=2,i-1,if(ok(i,j),print(i,", ",prime(i),", ",j,", ",prime(j)))))

 


Números triangulares

En el caso de soluciones simétricas no era fácil encontrar un ejemplo con números triangulares. Veamos si sólo buscamos anagramáticos. Usaremos la fórmula de los triangulares, N(N+1)/2.

Tal como era de esperar, aparecen muchas más soluciones. Estas son las primeras:


Con estos ejemplos ya estamos preparados para emprender otras búsquedas, como oblongos, de Fibonacci, potencias enteras y otros más que se nos ocurran.

 

No hay comentarios: