freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/project-euler/problem-406-guessing-game.s...

2.8 KiB

id challengeType title videoUrl localeTitle
5900f5021000cf542c510015 5 Problem 406: Guessing Game Problema 406: Juego de adivinanzas

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, obtenemos una de tres respuestas posibles: "Su conjetura es menor que el número oculto" (e incurre en un costo de a), o "Su conjetura es mayor que el número oculto" (y incurrir en un costo de b), o "¡Sí, eso es!" (Y el juego termina). Dado el valor de n, a yb, una estrategia óptima minimiza el costo total para el peor de los casos posibles.

Por ejemplo, si n = 5, a = 2 y b = 3, entonces podemos comenzar por preguntar "2" como nuestra primera pregunta.

Si se nos dice que 2 es mayor que el número oculto (para un costo de b = 3), estamos seguros de que "1" es el número oculto (para un costo total de 3). Si se nos dice que 2 es menor que el número oculto (por un costo de a = 2), entonces nuestra siguiente pregunta será "4". Si se nos dice que 4 es mayor que el número oculto (para un costo de b = 3), estamos seguros de que "3" es el número oculto (para un costo total de 2 + 3 = 5). Si se nos dice que 4 es menor que el número oculto (para un costo de a = 2), estamos seguros de que "5" es el número oculto (para un costo total de 2 + 2 = 4). Por lo tanto, el costo en el peor de los casos alcanzado por esta estrategia es 5. También se puede demostrar que este es el costo más bajo en el peor de los casos. Entonces, de hecho, acabamos de describir una estrategia óptima para los valores dados de n, a y b.

Sea C (n, a, b) el costo más desfavorable alcanzado por una estrategia óptima para los valores dados de n, a y b.

Aquí hay algunos ejemplos: C (5, 2, 3) = 5 C (500, √2, √3) = 13.22073197 ... C (20000, 5, 7) = 82 C (2000000, √5, √7 ) = 49.63755955 ...

Sea Fk los números de Fibonacci: Fk = Fk-1 + Fk-2 con los casos base F1 = F2 = 1.Encuentre ≤1≤k≤30 C (1012, √k, √Fk), y dé su respuesta redondeada a 8 Decimales detrás del punto decimal.

Instructions

Tests

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

Challenge Seed

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

euler406();

Solution

// solution required