lunes, 7 de mayo de 2018

Productos de tres divisores (2/3)


En la entrada anterior presentamos unos algoritmos de complejidad creciente en el problema de descomponer un número en tres factores enteros positivos, y lo organizamos para hacer notar la conveniencia de no acudir por sistema a cálculos de “fuerza bruta”, en los que aprovechamos la potencia de cálculo de nuestro equipo informático, sin analizar previamente otros métodos más eficientes. En esta otra entrada lograremos que los resultados residan en la misma hoja de cálculo, para así poderlos manipular más adelante.

Conversión en subrutina

Supongamos que poseemos la lista de divisores del número dado. En nuestros cálculos usamos la función LISTADIV, de diseño propio, pero se basa en otras funciones algo complejas que requieren un entorno distinto a una entrada de blog. No obstante, existen muchas herramientas en Internet que nos pueden proporcionar esa lista. Últimamente acudimos a la página de WolframAlpha. Le podemos pedir los divisores de 4218:



El resultado será:



Es muy probable que conozcas otras herramientas, como Wiris, WxMaxima u otra similar que te ofrezca la lista de divisores. Desde aquí te podemos ofrecer nuestro Buscador de Naturales, alojado en

http://www.hojamat.es/sindecimales/divisibilidad/herramientas/herrdiv.htm#buscador

Si lo descargas, habilita contenido y macros. Basta observar la imagen para entender su funcionamiento:



Hemos diseñado una búsqueda entre 1 y 4218, borrado las condiciones y añadida la de DIVISOR 4218. Con esto, obtenemos los 16 divisores deseados:



La ventaja de usar el Buscador es que nos devuelve el resultado en columna y en formato de hoja de cálculo. A partir de ella, con Copiar-Pegar podemos abordar otros desarrollos. El primero, que es el que da título a este apartado, es el de convertir la función trifactor en una subrutina tal que dada la columna de divisores, nos devuelva el conjunto de las descomposiciones en tres factores. Así lo hemos efectuado en la hoja de cálculo trifactor.xlsm, que puedes descargar desde

http://www.hojamat.es/blog/trifactor.xlsm

En ella aparecen los factores ocupando celdas distintas, lo que propicia su estudio posterior. En la imagen puedes reconocer la propiedad con la que comenzamos esta serie de entradas, y es que 4218 presenta productos con la misma suma de factores, 132 y 96:



Omitimos el código de la subrutina, ya que coincide con la función trifactor salvo la escritura y lectura de celdas. Lo puedes estudiar si abres la hoja que ofrecemos y eliges Programador – Visual Basic




A la derecha de la pantalla tendrás la subrutina trifactor:



(La imagen no abarca toda la rutina)

Búsquedas de números

La hoja trifactor no permite buscar números con propiedades similares a la del 4218 (poseer dos sumas de factores iguales). Por ello, volveremos a la función trifactor, que iremos modificando según la propiedad que nos interese.
En primer lugar diseñamos la función igualsum_trifactor(n), que nos devuelve el número de pares de igual suma entre las descomposiciones en tres factores.

No es bueno incluir demasiados códigos nuevos, por lo que insertamos el suyo en el Anexo de la tercera entrada de la serie. Con ella se puede descubrir, por ejemplo, que entre 1 y 100 sólo existe un número que presente sumas iguales, y es el 90, cuyos factores pueden sumar 16 o 20 dos veces. En la imagen lo puedes comprobar:



Las sumas repetidas son 2+3+15=1+9+10=20 y 3+3+10=2+5+9=16
En concreto, estos son los primeros números que presentan repeticiones en sus productos (se cuentan pares, de forma que si existen tres sumas iguales se contarán como tres pares)



Entre estos números figura el 546 que ya analizamos.

Estos resultados se pueden comprobar con la hoja trifactor.xlsm que presentamos más arriba. Sin embargo, podemos proponer el uso de nuestra hoja Cartesius

(http://www.hojamat.es/sindecimales/combinatoria/herramientas/herrcomb.htm#cartesius)

En ella podemos definir una etiqueta nueva en la hoja “Etiquetas” que haga referencia a los divisores del número que estemos estudiando. Elegimos el 360, que presenta muchos pares de sumas iguales, y la encabezamos con la etiqueta DIV


Después se programan las condiciones


En las condiciones (siguiendo su orden) pedimos que sean tres los factores, que abarquen del 1 al 24, que es el número de divisores de 360. Seguidamente se indica que los datos figuran en la etiqueta DIV, exigimos que el producto de los tres sea 360 y que figuren en orden creciente.

Con este planteo se obtienen 32 productos distintos



Junto a ellos podemos calcular su suma, y comprobar si resultan cinco pares de resultados iguales. En esta imagen parcial de la tabla de sumas se han destacado en negrita los cinco pares de sumas iguales:



En la siguiente entrada descubriremos nuevas propiedades.

No hay comentarios: