martes, 20 de febrero de 2018

Operandos simétricos (2)


En la anterior entrada estudiamos los pares de números de dos cifras cuyo producto no cambia si se invierten las mismas, como 48*63=84*36=3024. Abordaremos hoy la misma cuestión sustituyendo la operación de producto por otras. Comenzamos con la suma de cuadrados, que también presenta la misma propiedad en algunos casos, como 14^2+87^2=41^2+78^2=7765. Seguiremos los mismos pasos de estudio que recorrimos con el producto, pero más simplificados.

Operación Suma de cuadrados

Estos son los números menores de 100 que conservan el resultado de la suma de sus cuadrados aunque se altere el orden de las cifras. La tabla contiene los dos números y el resultado de la operación:



Para encontrarlos basta modificar ligeramente la función EQUISIM (ver entrada anterior). La podemos codificar así:

Function equisim(m, n)
Dim a, b, c

a = cifrainver(m) 'Invertimos las cifras
b = cifrainver(n)
c = m ^ 2 + n ^ 2 'Calculamos la suma de cuadrados
If c = a ^ 2 + b ^ 2 Then equisim = c Else equisim = 0 'Si coinciden se devuelve el producto y si no, un cero
End Function

Hemos aplicado esta función a todos los pares de números de dos cifras distintos y nos ha resultado la tabla de arriba.

Relación entre las cifras

Al igual que en el producto encontramos una relación sencilla entre las cifras que se invierten, en este caso obtenemos otra muy similar. Como en el caso anterior, basta un poco de Álgebra:

(10*a+b)^2+(10*m+n)^2=(10*b+a)^2+(10*n+m)^2

Desarrollamos y simplificamos y queda:

99(a2-b2)=99(n2-m2)

a2-b2=n2-m2

Lo comprobamos en algún ejemplo: 512+572=152+752 y se cumple que 52-12 = 72-52 = 24 y con 27 y 96 se cumple que 72-22=49-4=45 y 92-62=81-36=45

Hemos resumido la situación creando una tabla con todas las diferencia de cuadrados que son posibles entre cifras. Están destacados en rojo los pares repetidos, que son los que nos valen para este caso:



Cualquier par de diferencias equivalentes generará ejemplos de la tabla. Faltarán {03, 54} y {04, 53} por haber reducido la búsqueda al caso de dos cifras.


Operación a²+a*b+b²

Otra operación simétrica que nos ha producido resultados es a²+a*b+b², o lo que es equivalente, (a3-b3)/(a-b). Con las mismas técnicas, que no repetiremos, se pueden obtener los números de dos cifras que presentan simetría en las mismas para esta operación.

Son estos:




Hemos publicado en Twitter un ejemplo bastante atractivo:


También podemos emprender un estudio algebraico, para ver la relación entre cifras (nos limitamos al caso de dos)

(10*a+b)^2+(10*a+b)*(10*m+n)+(10*m+n)^2=(10*b+a)^2+(10*b+a)*(10*n+m)+(10*n+m)^2

Desarrollamos con simplificación y nos resulta, como era previsible:

a2+am+m2=b2+bn+n2

También aquí se ha efectuado la comprobación con una tabla de doble entrada:



Con diferencias de cuadrados

Al igual que en las anteriores operaciones, basta adaptar la función EQUISIM. Nos han resultado bastantes pares:

14 78 5888
15 57 3024
17 48 2015
26 79 5565
27 69 4032
30 54 2016
40 53 1209
41 87 5888
51 75 3024
62 97 5565
71 84 2015
72 96 4032

Ejemplos:

692-272=962-722=4032
872-412=782-142=5888
752-512=572-152=3024

Puedes relacionar este caso con el del producto, que ya vimos en la entrada anterior. Podemos aprovechar que la diferencia de cuadrados equivale a suma por diferencia. Lo hemos iniciado, pero la condición de que ambos factores tengan la misma paridad impide una correspondencia clara entre ambas operaciones.


Con suma simétrica a2+b2+a2

Terminamos este catálogo de operaciones con sumas simétricas, como

132+532+132=312+352+312=3147

Sin dar detalles, que puedes reproducir fácilmente, he aquí la tabla de resultados simétricos equivalentes. Basta hacer corresponder los pares que producen un mismo resultado:


20 13 969
13 40 1938
13 53 3147
31 35 3147
24 51 3753
42 15 3753
40 26 3876
15 71 5491
51 17 5491
35 62 6294
53 26 6294
24 75 6777
42 57 6777
15 84 7506
51 48 7506
26 80 7752
60 39 8721
40 79 9441
46 73 9561
64 37 9561
37 91 11019
73 19 11019
57 71 11539
75 17 11539
35 97 11859
53 79 11859
57 84 13554
75 48 13554
68 95 18273
86 59 18273
79 80 18882



lunes, 12 de febrero de 2018

Operandos simétricos (1)


En las redes sociales es posible encontrar la publicación de operaciones en las que el resultado de las mismas no cambia si cada operando se sustituye por su simétrico en base 10, es decir, con las cifras en orden inverso. Por ejemplo 12*42=504 y si invertimos, 21*24=504 también. Otro ejemplo sería 12*63=756 y 21*36=756. Podemos estudiar diversos aspectos sobre esta casualidad. Nos limitaremos al caso de dos cifras, que es el más interesante. Dejamos los demás casos a otro momento en el que aumente la motivación.

Operación producto

El caso en el que la operación sea un producto ha sido ya bien estudiado. Los posibles resultados están publicados. Los primeros son estos:

504, 756, 806, 1008, 1148, 1209, 1472, 1512, 2016, 2208, 2418, 2772, 2924, 3024, 4416, 4433, 5544, 6314, 8096, 8316, 8415, 8866, 10736, 11088,...(http://oeis.org/A228164)

Todos esos números proceden de dos productos simétricos. El primero, 504, ya lo hemos desarrollado. La siguiente tabla la hemos construido en hoja de cálculo para destacar los factores correspondientes a los términos de la sucesión anterior. Las dos primeras columnas representan los factores y la tercera el producto. Es fácil buscar en ella resultados iguales y pares simétricos:

12 42 504
12 63 756
12 84 1008
13 62 806
13 93 1209
14 82 1148
21 24 504
21 36 756
21 48 1008
23 64 1472
23 96 2208
24 63 1512
24 84 2016
26 31 806
26 93 2418
28 41 1148
31 39 1209
32 46 1472
32 69 2208
34 86 2924
36 42 1512
36 84 3024
39 62 2418
42 48 2016
43 68 2924
46 96 4416
48 63 3024
64 69 4416


Resultan 28 resultados. Más adelante justificaremos este número. Es evidente que en esta cuestión se excluyen los capicúas. Para construir una tabla similar necesitaremos una función para descubrir si un número es capicúa y otra para invertir las cifras de un número entero.

Disponemos de la función ESCAPICUA, que devuelve VERDADERO si lo es, y la función CIFRAINVER, que invierte las cifras de un número. El código de ambas lo tienes en el Anexo.

Una vez preparadas estas dos funciones, basta un bucle doble para detectar si un par de números cumple la propiedad citada. Para facilitar las búsquedas introducimos la función EQUISIM, que devuelve VERDADERO si al invertir las cifras en un producto el resultado no cambia. Puede ser la siguiente:

function equisim(m,n)
dim a,b,c

a=cifrainver(m) ‘Invertimos las cifras
b=cifrainver(n)
c=m*n ‘Calculamos el producto
if c=a*b then equisim=c else equisim=0 ‘Si coinciden se devuelve el producto y si no, un cero
end function

Con esta función y un doble bucle podemos encontrar las soluciones de la tabla de arriba

For i = p To q
for a=i to q

c=equisim(i,a)
If c>0 and not escapicua(i) and not escapicua(a) and a<>cifrainver(i) Then
Msgbox(i)
Msgbox(a)
Msgbox(c)
End if
Next a
Next i

Relación entre las cifras

Una pregunta natural es si las cifras de estas soluciones están relacionadas de alguna forma. Con un poco de Álgebra lo descubriremos en el caso de dos cifras. Sean los números  (10*a+b) y (10*m+n). Planteamos que su producto coincida con el que resulta de invertir cifras:

 (10*a+b)(10*m+n)=(10*b+a)(10*n+m)

Operamos con simplificación y queda

99am=99bn

am=bn

Luego la relación entre cifras es que el producto de las decenas coincida con el de las unidades. Compruébalo con los ejemplos de la tabla. Por ejemplo,  46 y 96 cumplen 4*9=6*6 y también que 46*96=64*69=4416

Esta es otra forma de ver el problema. Para buscar soluciones recorreremos los números que se puedan expresar de dos formas distintas como producto de dos factores de un dígito. Por ejemplo, 18=3*6=2*9, luego unas soluciones son {32, 69} {39, 62} {23, 96} y {26, 93}.

Sería buena idea recorrer todos los números enteros que se pueden descomponer en dos pares de factores de una cifra distintos. Es fácil ver que son:

4=1*4=2*2
6=1*6=2*3
8=1*8=2*4
9=1*9=3*3
12=2*6=3*4
16=2*8=4*4
18=2*9=3*6
24=3*8=4*6
36=4*9=6*6

De ellos hay cinco con todas las cifras distintas, que según un razonamiento anterior, darán lugar a cuatro soluciones cada uno, lo que suma 20 soluciones. Con dos cifras repetidas hay cuatro, que a dos soluciones cada uno, formarán 8 soluciones. Sumamos y obtenemos las 28 que forman la tabla de soluciones.

Si quieres asegurarte de que ya no hay más, puedes usar esta función, que te devuelve “NO” si no es un número válido, o bien el conjunto de factores menores que 10.

Su código puede ser este:

Function cuatrodigi$(n)
Dim a, i, j, k
Dim s$

s = ""   ‘Recibirá las soluciones o un “NO”
k = 0    ‘Contador de pares
For i = 1 To 8
For j = i To 9
If n = i * j Then ‘Vemos si es producto de dos dígitos
k = k + 1            ‘Si lo es, incrementamos el contador y recogemos soluciones en s$
s$ = s$ + Str$(i) + Str$(j)
End If
Next j
Next i
If k > 1 Then cuatrodigi$ = s$ Else cuatrodigi = "NO"  ‘Recogemos soluciones si son cuatro o más
End Function


Hemos usado esta función en una rutina de búsqueda y nos han resultado las nueve soluciones ya analizadas:



En la próxima entrada estudiaremos otras operaciones simétricas distintas del producto.

ANEXO

Public Function escapicua(n) As Boolean
Dim l, i, k
Dim c As Boolean
Dim auxi$

auxi = Right(auxi, Len(auxi) - 1)
c = True
i = 1
k = Int(l / 2)
While i <= k And c
  If Mid(auxi, i, 1) <> Mid(auxi, l - i + 1, 1) Then c = False
  i = i + 1
  Wend
End If
escapicua = c
End Function


Public Function cifrainver(n)
Dim l, i
Dim c
Dim auxi$, auxi2$, ci$
If n < 10 Then cifrainver = n: Exit Function
auxi = auxi = Right(auxi, Len(auxi) - 1)
auxi2$ = ""
l = Len(auxi)
For i = l To 1 Step -1
ci$ = Mid(auxi, i, 1)
auxi2 = auxi2 + ci$
Next i
c = Val(auxi2$)
cifrainver = c
End Function