Eu estava resolvendo essa pergunta. É como segue
Joe escolhe um número inteiro a partir da lista de com uma probabilidade de colheita para todos . Ele então tenta Jason adivinhar seu número. Em cada palpite, Joe dirá a Jason se seu número é maior ou menor que o palpite de Jason. Se Jason adivinha o número de Joe corretamente em qualquer um dos , o jogo termina e Jason vence. Jason perde o contrário. Se Jason conhece todos os e joga da melhor maneira, qual é a probabilidade de ganhar?
Eu tentei esse problema por programação dinâmica. Permita que armazene a probabilidade de ganho, de modo que o número esteja entre e inclusivo e restem apenas chances. Então
Mas desde o intervalo de N é muito alto, essa solução não é viável. Então, enquanto eu procurava uma solução \ mathcal {O} (n) , me deparei com a seguinte solução (na internet, que foi aceita)
- Classificar ( )
Se executarmos a solução na entrada , obteremos a mesma resposta. Portanto, minha pergunta é como o algoritmo acima está funcionando e podemos chegar à mesma conclusão começando com a minha formulação dp {se estiver correta}.