freeCodeCamp/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-406-guessing-game.md

2.8 KiB

id title challengeType forumTopicId dashedName
5900f5021000cf542c510015 Problema 406: Jogo de adivinhação 5 302074 problem-406-guessing-game

--description--

Estamos tentando encontrar um número oculto selecionado do conjunto de inteiros {1, 2, ..., n} fazendo perguntas. Cada número (pergunta) que perguntamos, recebemos uma das três possíveis respostas:

  • "Seu palpite é menor que o número oculto" (e você tem um custo de a) ou
  • "Seu palpite é maior que o número oculto" (e você tem um custo de b), ou
  • "Sim, é esse!" (e o jogo acaba).

Dado o valor de n, a, e b, uma estratégia ideal minimiza o custo total para o pior caso possível.

Por exemplo, se n = 5, a = 2, e b = 3, podemos começar perguntando "2" como a nossa primeira pergunta.

Se nos disserem que 2 é maior que o número oculto (para um custo de b = 3), então temos certeza de que "1" é o número oculto (para um custo total de 3).

Se nos for dito que 2 é menor que o número oculto (para um custo de a = 2), então nossa próxima pergunta será 4".

Se nos for dito que 4 é maior que o número oculto (para um custo de b = 3), então temos certeza de que "3" é o número oculto (para um custo total de 2 + 3 = \color{blue}{\mathbf{5}}).

Se nos for dito que 4 é menor que o número oculto (para um custo de a = 2), então temos a certeza de que "5" é o número oculto (para um custo total de 2 + 2 = \cor{blue}{\mathbf{4}}).

Assim, o pior custo de caso alcançado por esta estratégia é 5. Também se pode demonstrar que este é o pior custo possível que pode ser alcançado. Então, de fato, acabamos de descrever uma estratégia ideal para os valores indicados de n, a$e $b.

Considere C(n, a, b) como o pior caso de custo obtido por uma estratégia ideal para os valores dados de n, a, e b.

Aqui estão alguns exemplos:

\begin{align}   & C(5, 2, 3) = 5 \\\\
  & C(500, \sqrt{2}, \sqrt{3}) = 13.220\\,731\\,97\ldots \\\\   & C(20.000, 5, 7) = 82 \\\\
  & C(2.000.000, √5, √7) = 49.637\\,559\\,55\ldots \\\\ \end{align}$$

Considere $F_k$ como sendo os números de Fibonacci: $F_k = F_{k - 1} + F_{k - 2}$ com casos base $F_1 = F_2 = 1$.

Encontre $\displaystyle\sum_{k = 1}^{30} C({10}^{12}, \sqrt{k}, \sqrt{F_k})$ e dê sua resposta arredondada para 8 casas decimais após o ponto decimal.

# --hints--

`guessingGame()` deve retornar `36813.12757207`.

```js
assert.strictEqual(guessingGame(), 36813.12757207);
```

# --seed--

## --seed-contents--

```js
function guessingGame() {

  return true;
}

guessingGame();
```

# --solutions--

```js
// solution required
```