Dada una constante k, encuentre el árbol enraizado más grande posible, si para cada camino de raíz a hoja, la suma de la aridad de sus nodos es igual a k?


8

Como ejemplo, aquí están todos los árboles posibles para el caso : en cada nodo escrito está su aridad (= el número de hijos).k=3ingrese la descripción de la imagen aquí

Si bien esto debería resolverse mediante programación dinámica, creo que hubo un resultado combinatorio en esto (ya sea exacto o un límite superior de grano fino). ¿Alguien lo sabe?


Editar:

El tamaño del árbol es la cantidad de nodos que tiene, por lo que el árbol más grande sería el que tenga la cantidad máxima de nodos.


3
Definir más grande.
idoby

Probablemente quiera decir "cada camino desde la raíz a una hoja ", ya que de lo contrario el árbol de 1 vértice es la única solución. (También sería mejor que explícitamente diga que estamos hablando de un arraigado árbol -. Árboles sin raíces también son posibles)
j_random_hacker

@j_random_hacker Sí, tienes toda la razón. Corregiré la pregunta.
Sudix

Respuestas:


4

Dejar B(n) ser del tamaño del árbol más grande, donde las aridades de cada camino desde la raíz hasta la hoja se suman a n.

Si la raíz de tal árbol tiene aridad k, luego los caminos para cada una de las k los subárboles deben sumar hasta nk. Como los subárboles deben ser óptimos, el árbol tiene tamaño1+kB(nk).

Una fórmula para B(n) simplemente maximiza esa expresión sobre k, utilizando los valores anteriores B(n1),B(n2),.

Traté de hacer esto a mano y encontré (con la ayuda de @Sudix, gracias) 1,2,3,5,7,11,16,23,34,. Esto parece ser A239288 en Sloanes Online Encyclopedia of Integer Sequences. La recursividad dada allí es similar, pero no exactamente la misma.

La explicación de la secuencia allí es: "Suma máxima de x0 + x0 * x1 + ... + x0 * x1 * ... * xk sobre todas las composiciones x0 + ... + xk = n". De hecho, esa es la misma secuencia: si la secuencia de aridades a lo largo del camino desde la raíz es x0, x1, ..., xk, estas deberían sumar n, y el número de nodos es la fórmula dada.

Otro comentario en Sloane es interesante: "Para n> = 8 la solución se vuelve cíclica: a (3n + k) = 3 + 3a (3n - 3 + k)". Esto parece sugerir que para valores mayores de 24 la raíz del árbol siempre tiene tres hijos.


Entonces, para ponerlo en una fórmula, la recursividad para resolver / estimar es: B(n)=1+max1knkB(nk)B(0)=1
Sudix

2
Creo que en su secuencia ha perdido un paso, tengo: '1, 2, 3, 5, 7, 11, 16, 23, 34, 49, 70, 103, 148, 211, 310, 445, 634, 931, 1336, 1903, 2794, 4009, 5710, 8383, 12028, 17131 '; Si no calculé mal, hay una entrada [OEIS] [1] para la serie-1. [1]: oeis.org/…
Sudix
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.