ForHosting KIT · Utilidades de desarrollo

Calculadora de nodos del árbol de recursión

Cuente los nodos de un árbol de recursión de divide y vencerás: dos subproblemas de la mitad a partir de 16 dan 5 niveles con 1, 2, 4, 8 y 16 nodos, 31 en total y 16 hojas. Compruebe ejercicios sin dibujar el árbol. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Factor de ramificación
2
Razón de reducción
2
Tamaño de entrada
16
Obtiene
Cantidad de niveles
5
Altura del árbol
4
Total de nodos
31
Nodos hoja
16

Las recurrencias de divide y vencerás de la forma T de n igual a a veces T de n entre b más el trabajo no recursivo aparecen en todo curso de algoritmos cuando se dibujan como árboles el merge sort, las particiones espaciales binarias o la recursión multiway. Los estudiantes necesitan un recuento fiable de cuántos nodos hay en cada nivel y hasta qué profundidad crece el árbol antes de que los subproblemas alcancen el caso base. Esta calculadora de nodos del árbol de recursión acepta el factor de ramificación a, la razón de reducción b y el tamaño de entrada raíz n, recorre el árbol hasta que el tamaño del subproblema sea como máximo uno, y devuelve el número de niveles, la altura, los totales de nodos y de hojas, la secuencia de nodos por nivel, los tamaños de subproblema y dos distribuciones fraccionarias del trabajo. Una asume coste unitario por nodo; la otra asume trabajo proporcional al tamaño del subproblema, como en el dibujo clásico del merge sort donde cada nivel completo sigue haciendo trabajo lineal en n.

Qué cuenta un árbol de recursión y cómo se definen los niveles

Un árbol de recursión es la imagen de cada subproblema que genera un algoritmo de divide y vencerás cuyo tiempo cumple T de n igual a a veces T de n entre b más f de n. La raíz representa la instancia original de tamaño n. Cada nodo interno tiene exactamente a hijos, cada uno resuelve un problema cuyo tamaño es el del padre dividido por b.

Los niveles se numeran desde cero en la raíz. En el nivel i hay a elevado a i nodos, y cada uno tiene tamaño de subproblema n dividido por b elevado a i, siempre que los tamaños sigan siendo reales y positivos. El recorrido continúa mientras el tamaño actual sea estrictamente mayor que uno; el primer nivel cuyo tamaño es menor o igual que uno se conserva como nivel de hojas de casos base y entonces se detiene.

Esa convención coincide con la condición de parada de los libros de texto al resolver entradas de tamaño constante de forma directa. La altura del árbol es el número de niveles menos uno, es decir el número de aristas en un camino de la raíz a una hoja. Los nodos hoja equivalen a a elevado a la altura cuando los tamaños llegan a uno en una potencia exacta y, en general, al recuento de nodos del último nivel registrado.

Los nodos internos son el total menos las hojas. Con factor de ramificación uno el árbol es una sola espina de longitud igual al número de divisiones sucesivas hasta que el tamaño es como máximo uno. Con factor mayor que uno la forma cerrada del total de nodos en L niveles es a elevado a L menos uno, todo ello entre a menos uno; este extremo lo recalcula sumando la serie geométrica para que tamaños fraccionarios y casos base tempranos sigan coherentes con el recorrido.

Dónde ayuda contar los nodos del árbol

Los cursos de algoritmos y las plataformas de tutoría usan una calculadora de nodos del árbol de recursión para que el alumnado compruebe profundidad y amplitud con a, b y n arbitrarios sin dibujar cientos de nodos a mano. Los generadores de exámenes necesitan un oráculo determinista que marque como incorrecto un recuento de hojas o de niveles alegado en lugar de aceptar conjeturas asintóticas vagas.

Las herramientas de preparación de entrevistas y los visualizadores de complejidad emparejan los arrays por nivel con gráficos para que los candidatos vean por qué el divide y vencerás equilibrado suele gastar el mismo trabajo en cada nivel cuando a es igual a b. Los cuadernos de ingeniería que prototipan divisores multiway o grafos de tareas en paralelo pueden validar el fan-out antes de escribir planificadores de producción. La validación fallida no consume saldo.

Deberes y tutoría de algoritmos

Permita que los estudiantes envíen a, b y n para T(n)=a T(n/b)+f(n) y verifiquen el número de niveles, las hojas y la secuencia geométrica de nodos frente a los dibujos del libro.

Autocalificación de exámenes y LMS

Corrija ítems de árbol de recursión con un oráculo determinista de nodos totales y altura en lugar de aceptar conjeturas asintóticas como respuestas exactas.

¿Cuántos nodos tiene el árbol de recursión de la ordenación por mezcla?

Con una entrada de 16 que se parte en dos mitades en cada llamada, hay 5 niveles con 1, 2, 4, 8 y 16 nodos. En total son 31 nodos, de los que 16 son hojas y 15 son internos.

¿Cuándo deja de crecer el árbol?

En el primer nivel cuyo tamaño de subproblema baja a 1 o menos. Ese nivel contiene los casos base. La altura es el número de niveles menos uno, así que 5 niveles suponen una altura de 4.

¿Qué muestran los dos repartos de trabajo?

Uno supone que cada nodo cuesta lo mismo, de modo que la mayor parte del trabajo queda en las hojas. El otro supone un trabajo proporcional al tamaño, como en la ordenación por mezcla, donde cada uno de los 5 niveles hace una quinta parte.

¿Qué pasa si cada llamada crea un solo subproblema?

Entonces el árbol es una única cadena, tan larga como el número de divisiones necesarias para bajar el tamaño a 1. La razón de reducción debe ser siempre mayor que uno; si no, los subproblemas nunca se harían más pequeños.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/recursion-tree-nodes

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/recursion-tree-nodes \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"branching_factor":2,"shrink_ratio":2,"input_size":16}'
{
  "branching_factor": 2,
  "shrink_ratio": 2,
  "input_size": 16
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.recursion_tree_nodes",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Contrato de entrada, campos de respuesta y vistas del reparto de trabajo

La cadena recurrence reescribe T de n en términos de a y b, y el campo formula resume la regla de niveles y la forma cerrada del total de nodos. Las combinaciones patológicas que superarían un techo seguro de niveles o nodos se rechazan con un mensaje claro para que los clientes no se cuelguen en un árbol que explota. Ejemplo: factor de ramificación dos, razón de reducción dos, tamaño de entrada dieciséis produce cinco niveles con recuentos uno, dos, cuatro, ocho, dieciséis, treinta y un nodos en total y dieciséis hojas: el árbol de recursión binario perfecto clásico del merge sort sobre un array potencia de dos. Envíe un cuerpo JSON por POST con tres números finitos obligatorios: branching_factor, entero mayor o igual que uno; shrink_ratio, número finito estrictamente mayor que uno para que los subproblemas se reduzcan; e input_size, número finito al menos uno para la raíz. Se aceptan cadenas numéricas; los campos ausentes, valores no finitos, factores de ramificación no enteros o menores que uno, razones de reducción no mayores que uno y tamaños de raíz inferiores a uno fallan con invalid_input y no se facturan. En caso de éxito el cuerpo repite las tres entradas e informa level_count, tree_height, total_nodes, leaf_nodes e internal_nodes. El array nodes_per_level indica cuántos nodos hay en cada nivel desde la raíz hacia abajo. El array subproblem_size_per_level indica el tamaño compartido por todos los nodos de ese nivel, redondeado a doce decimales para igualdad estable entre runtimes. Dos arrays de fracciones en paralelo suman uno: node_fraction_per_level divide el recuento de nodos de cada nivel por el total general, modelando trabajo unitario por llamada recursiva; size_work_fraction_per_level pondera cada nivel por nodos por tamaño de subproblema, modelando trabajo no recursivo proporcional al tamaño en ese nodo.

Dónde aporta valor una API de nodos del árbol de recursión

Como la implementación es pure parse de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente.

Visualizadores de complejidad y entrevistas

Alimente nodes_per_level y size_work_fraction_per_level en gráficos para que los candidatos vean cómo se reparte el trabajo entre niveles en árboles al estilo merge sort.

¿Cómo se cuentan los nodos de un árbol de recursión divide y vencerás?

Envíe branching_factor a entero ≥ 1, shrink_ratio b > 1 e input_size n ≥ 1. La API recorre niveles con a^i nodos de tamaño n/b^i hasta size ≤ 1 y devuelve totales más arrays por nivel.

¿Cuál es la diferencia entre level_count y tree_height?

level_count es el número de niveles incluyendo la raíz (al menos 1). tree_height es level_count menos 1, el número de aristas en un camino de la raíz a una hoja.

¿Cómo se calcula la distribución del trabajo?

node_fraction_per_level es el recuento de nodos de cada nivel sobre total_nodes. size_work_fraction_per_level pondera cada nivel por nodos por tamaño de subproblema, alineado con trabajo no recursivo Θ(size) por llamada.

¿Cuándo rechaza la entrada la calculadora?

Campos ausentes o no finitos, branching_factor no entero o menor que uno, shrink_ratio ≤ 1, input_size < 1, o árboles que superan el techo seguro de niveles o nodos fallan con invalid_input y no se facturan.

¿Cuánto cuesta la calculadora de nodos del árbol de recursión?

La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.

Ver la documentación completa del KIT →