2.8 KiB
id, title, challengeType, forumTopicId, dashedName
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
.
assert.strictEqual(guessingGame(), 36813.12757207);
--seed--
--seed-contents--
function guessingGame() {
return true;
}
guessingGame();
--solutions--
// solution required