La balanza de dos platos
- O(2ⁿ) · Legendaria
- Plan completo
- Python
- JavaScript
- recursión
- listas
- operaciones
Enunciado
Lucía Ferrer, química, pesa sus polvos en una balanza de dos platos con unas cuantas pesas. Pone el polvo en un plato, y cada pesa puede ir en el otro plato, en el mismo plato que el polvo, o quedarse fuera. Cuando la balanza queda nivelada, sabe cuánto pesa el polvo. Quiere saber cuántas cantidades distintas puede medir así.
Escribe una función que reciba pesas, una lista de enteros positivos (puede venir vacía o con valores repetidos). Regresa un entero: cuántas cantidades enteras positivas distintas se pueden medir. Cada pesa se usa a lo más una vez: en el plato de enfrente, en el plato del polvo o en ninguno.
Con [1, 3] mide 1 y 3 con una pesa sola, 4 con las dos juntas, y 2 poniendo la de 3 enfrente y la de 1 junto al polvo, porque 3 = 2 + 1. Regresa 4. Con [2, 5] mide 2, 5, 7 y 3: también 4.
Ejemplos
El ejemplo
[1, 3] → 4
Dos pesas que no son consecutivas
[2, 5] → 4
Del 1 al 13 sin huecos
[1, 3, 9] → 13
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def pesos_medibles(pesas):
passJavaScript
function pesosMedibles(pesas) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.
Más retos de O(2ⁿ)
- La bodega de la cápsularecursión · listas · comparaciones
- La ficha de la abuelarecursión · listas · índices
- La fiesta de la cuadrarecursión · listas · ciclos
- La guardia completarecursión · listas · textos
- La palabra de elementosrecursión · textos · índices
- Las bolsas de Mansa Musarecursión · listas · índices