Você e um amigo se perderam na fila para um concerto, e nenhum deles tem certeza de qual deles está mais à frente. Formalmente, cada um está em alguma coordenada inteira e só pode caminhar em direção a uma coordenada mais alta ou permanecer no local.
Supondo que você e seu amigo estejam seguindo exatamente o mesmo algoritmo (e não, você não pode dizer "if (name ==" R B ") faça algo :)), e a distância inicial entre vocês dois foi (que não é conhecido por você).
Qual é o algoritmo que minimiza a curta distância esperada até você e seu amigo se encontrarem?
Você pode assumir que seu amigo e você estão se movendo na mesma velocidade constante.
Um exemplo de algoritmo simples seria algo como:
No estágio (a partir de ):0
- Ande etapas para a direita wp ou aguarde unidades de tempo.1 3n
Para ver esse algoritmo faz com que os amigos se encontrem com probabilidade 1, considere o que acontece no estágio . Mesmo que o amigo que estava passo à frente sempre andasse e o outro sempre estivesse no lugar, a distância entre os dois seria: x x + 1 + 3 + 9 + … + 3 log 3 x = 2 x + x - 1
Portanto, na , o amigo que escolher andar percorrerá a distância de , portanto, com probabilidade , o amigo que está por trás alcançará e eles se encontrarão.3 log 3 x + 1 = 3 x 1
Uma otimização simples (para reduzir a distância a pé) seria, em vez de andar etapas, andar etapas, em que é dada por: c x c 2 + 1
Portanto, o ideal para esse algoritmo é
Infelizmente, embora esse algoritmo garanta que os amigos encontrarão a probabilidade 1, a distância esperada é infinita, o que é algo que eu gostaria de evitar, se possível.
Existe um algoritmo mais eficiente?
Respostas:
A cada passo , os dois amigos andam 2 k passos. Se k < log 2 ( x ) + 1 , eles não se encontrarão durante essa etapa; no entanto, se k > = log 2 ( x ) + 1 , eles se encontrarão se e somente se não desenharem o mesmo número. A probabilidade de que isso não acontece apenas 1 / 3 em cada etapa.k 2k k < log2( x ) + 1 k > = log2( x ) + 1 1 / 3
Portanto, a distância a pé esperada é (delimitada acima por):
Qual é finito e igual, se minha matemática de guardanapo é confiável, para .2⌈ log2( x ) ⌉ + 3- 2 ≤ 16 x
fonte