freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/project-euler/problem-328-lowest-cost-sea...

3.1 KiB

id challengeType title videoUrl localeTitle
5900f4b41000cf542c50ffc7 5 Problem 328: Lowest-cost Search Problema 328: Búsqueda de menor costo

Description

Estamos tratando de encontrar un número oculto seleccionado del conjunto de enteros {1, 2, ..., n} haciendo preguntas. Cada número (pregunta) que hacemos, tiene un costo igual al número solicitado y obtenemos una de las tres respuestas posibles: "Su conjetura es menor que el número oculto", o "¡Sí, eso es!", O "Su conjetura es más alto que el número oculto ". Dado el valor de n, una estrategia óptima minimiza el costo total (es decir, la suma de todas las preguntas formuladas) para el peor de los casos. P.ej

Si n = 3, lo mejor que podemos hacer es, obviamente, pedir el número "2". La respuesta nos llevará inmediatamente a encontrar el número oculto (a un costo total = 2).

Si n = 8, podríamos decidir utilizar un tipo de estrategia de "búsqueda binaria": nuestra primera pregunta sería "4" y si el número oculto es mayor que 4 necesitaremos una o dos preguntas adicionales. Deje que nuestra segunda pregunta sea "6". Si el número oculto aún es mayor que 6, necesitaremos una tercera pregunta para discriminar entre 7 y 8. Por lo tanto, nuestra tercera pregunta será "7" y el costo total para este escenario en el peor de los casos será 4 + 6 + 7 = 17.

Podemos mejorar considerablemente el costo del caso más desfavorable para n = 8, al preguntar "5" como nuestra primera pregunta. Si se nos dice que el número oculto es mayor que 5, nuestra segunda pregunta será "7", entonces sabremos con certeza cuál es el número oculto (por un costo total de 5 + 7 = 12). Si nos dicen que el número oculto es menor que 5, nuestra segunda pregunta será "3" y si el número oculto es menor que 3, nuestra tercera pregunta será "1", lo que da un costo total de 5 + 3 + 1 = 9. Desde 12> 9, el costo más desfavorable para esta estrategia es 12. Eso es mejor que lo que hemos logrado anteriormente con la estrategia de "búsqueda binaria"; También es mejor o igual que cualquier otra estrategia. Entonces, de hecho, acabamos de describir una estrategia óptima para n = 8.

Sea C (n) el costo más desfavorable alcanzado por una estrategia óptima para n, como se describe anteriormente. Por lo tanto, C (1) = 0, C (2) = 1, C (3) = 2 y C (8) = 12. De manera similar, C (100) = 400 y C (n) = 17575.

Encuentra C (n).

Instructions

Tests

tests:
  - text: <code>euler328()</code> debe devolver 260511850222.
    testString: 'assert.strictEqual(euler328(), 260511850222, "<code>euler328()</code> should return 260511850222.");'

Challenge Seed

function euler328() {
  // Good luck!
  return true;
}

euler328();

Solution

// solution required