Files
2022-04-01 02:01:59 +09:00

2.9 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f5021000cf542c510015 Problema 406: gioco degli indovinelli 5 302074 problem-406-guessing-game

--description--

Stiamo cercando di trovare un numero nascosto selezionato dal set di interi {1, 2, ..., $n$} facendo domande. Per ogni numero (domanda) che chiediamo, otteniamo una di tre possibili risposte:

  • "Your guess is lower than the hidden number" (il tuo numero è più piccolo del numero nascosto) (e hai una perdita di a), o
  • "Your guess is higher than the hidden number" (Il tuo numero è più alto del numero nascosto) (e hai una perdita di b), o
  • "Yes, that's it!" (Sì, è quello!) (e il gioco conclude).

Dati i valori di n, a, e b, una strategia ottimale minimizza la perdita totale per il peggior caso possibile.

Per esempio, se n = 5, a = 2, e b = 3, allora potremmo iniziare chiedendo "2" come prima domanda.

Se ci viene detto che 2 è più grande del numero nascosto, (per una perdita di b = 3), allora siamo sicuri che "1" è il numero nascosto (per una perdita totale di 3).

Se ci viene detto che 2 è più basso del numero nascosto (per un costo di a = 2), allora la nostra prossima domanda sarà "4".

Se ci viene detto che 4 è più alto del numero nascosto (per un costo di b 0 3), allora siamo sicuri che "3" è il numero nascosto (per un costo totale di 2 + 3 \color{blue}{\mathbf{5}}).

Se ci viene detto che 4 è più basso del numero nascosto (per un costo di a = 2), allora siamo sicuri che "5" è il numero nascosto (per un costo totale di 2 + 2 = \color{blue}{\mathbf{4}}).

Quindi, per lo scenario peggiore, il costo ottenuto con questa strategia è 5. Si può anche mostrare che questo è il più basso costo per il peggior scenario ceh può essere ottenuto. Quindi, infatti, abbiamo apena descritto una strategia ottimale per i valori dati di n, a, e b.

Sia C(n, a, b) il costo per il peggio scenario ottenuto da una strategia ottimale per i dati valori di n, a, e b.

Ecco alcuni esempi:

$$\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}$$

Siano F_k i numeri di Fibonacci: F_k = F_{k - 1} + F_{k - 2} con i casi base F_1 = F_2 = 1.

Trova \displaystyle\sum_{k = 1}^{30} C({10}^{12}, \sqrt{k}, \sqrt{F_k}), e dai la tua risposta arrotondata a 8 decimali dietro il punto.

--hints--

guessingGame() dovrebbe restituire 36813.12757207.

assert.strictEqual(guessingGame(), 36813.12757207);

--seed--

--seed-contents--

function guessingGame() {

  return true;
}

guessingGame();

--solutions--

// solution required