Máximo producto en la partición de un número

El artículo de esta semana de Antonio Roldán en su blog Números y hoja de cálculo es Máximo producto en la partición de un número (1)

Una partición de un entero positivo n es una forma de descomponer n como suma de enteros positivos. Dos sumas se considerarán iguales si solo difieren en el orden de los sumandos. Por ejemplo, las 11 particiones de 6 (con sus correspondientes productos) son

Se observa que el máximo producto de las particiones de 6 es 9.

Definir la función

tal que (maximoProductoParticiones n) es el máximo de los productos de las particiones de n. Por ejemplo,

Comprobar con QuickChek que los únicos posibles factores de (maximoProductoParticiones n) son 2 y 3.

Soluciones

Referencia

7 Comentarios

    1. Para chequear la propiedad:

  1. Suponiendo que la propiedad es cierta, podemos escribir la función de forma muy simple:

    Para optimizar, evitamos la recursión.

    1. Mas simplificado:

    1. La propiedad se ve de forma intuitiva fácilmente. Nuestro objetivo es conseguir el máximo producto a partir de las particiones de n, dividimos a n en n veces el número 1 y tenemos que agruparlos de forma que nos dé el máximo producto, para ello queremos el máximo número de factores lo más grande posible, el factor óptimo será 3. Podemos ver que para todo entero n mayor que 4 su máximo producto es mayor que n. Por tanto si vemos los casos para n < 6 los otros se reducen a estos, ya que si agrupamos los 1 como queramos, de forma que no quede ningún 1 suelto, si alguno es más grande que 4 aplicamos máximoProducto en ese factor. Si n=5 (n=2 mod 3) el máximo producto es 3×2, si n=4 (n=1 mod 3) el máximo producto es 2×2 y si n=3 (n=0 mod 3) el máximo producto es 3. Generalizando para el caso n > 6 obtenemos el resultado de arriba.

Escribe tu solución