Introdução
Suponha por um momento que as víboras e o penhasco estejam a apenas dois passos, em vez de três.
o
---
Hsss! |
';;' ___ /_\ ___ _
|
Você é, infelizmente, prisioneiro de um torturador sádico. Você deve dar um passo à esquerda ou à direita a cada curva. Caso contrário, eles matam você instantaneamente. Você tem permissão para planejar suas etapas com antecedência, mas depois de dar sua primeira etapa, você não poderá alterar seu plano. (E também não demore; eles vão atirar em você.)
De repente, uma idéia brilhante vem à mente ...
Ah! Eu posso apenas alternar pisando direita e esquerda! Passo para a direita, passo para a esquerda, passo para a direita, passo para a esquerda e assim por diante ...
Ah ah ah, não tão rápido. Como eu disse, o torturador é sádico. Eles escolhem se você dá cada passo, ou segundo passo, ou terceiro passo, e assim por diante. Portanto, se você escolher ingenuamente a sequência RLRLRL...
, eles poderão forçá-lo a dar cada segundo passo, que começa com LL
. Oh! Você foi mordido por víboras! A escuridão toma conta de você e tudo mais desaparece ...
Na verdade não, você ainda não está morto. Você ainda precisa propor seu plano. Depois de pensar por alguns minutos, você percebe que está condenado. Não há como planejar uma série de etapas que garantam sua sobrevivência. O melhor que você pode fazer é RLLRLRRLLRR
. 1 Onze etapas seguras e nada mais. Se o décimo segundo passo for R
, o Torturador fará com que você dê todos os passos e, em seguida, os três últimos passos o enviarão do penhasco. Se o décimo segundo passo for L
, o Torturador fará com que você dê cada terceiro passo ( LRLL
), o que o coloca bem na ninhada de víboras e suas mordidas letais.
Você escolhe R
o décimo segundo passo, esperando adiar sua morte o maior tempo possível. Com o vento rugindo em seus ouvidos, você se pergunta ...
E se eu tivesse três etapas?
Alerta de spoiler!
Você ainda morreria. Acontece que, não importa quantos passos você tenha, haverá algum momento em que, independentemente da escolha que você faça, há uma sequência de passos que seu Torturador pode seguir para garantir que você cumpra seu destino mortal. 2 No entanto, quando as víboras e o penhasco estão a três passos, você pode fazer um total de 1160 etapas seguras e, quando estão a quatro etapas, existem pelo menos 13.000 etapas seguras! 3
O desafio
Dado um único número inteiro n < 13000
, produza uma sequência de n
etapas seguras, assumindo que o penhasco e as víboras estão a quatro passos.
Regras
- Pode ser um programa completo ou uma função.
- A entrada pode ser obtida através de STDIN ou equivalente, ou como argumento de função.
- Saída deve ter dois caracteres distintos (que pode ser
+/-
,R/L
,1/0
, etc.). - Qualquer espaço em branco na saída não importa.
- A codificação embutida de uma solução não é permitida. Isso banalizaria esse desafio.
- Seu programa deve (em teoria) terminar em uma quantidade decente de tempo. Como
n=13000
pode demorar um mês, mas não deve demorar mil anos ou mais. Ou seja, sem força bruta. (Bem, pelo menos tente evitá-lo.) - Bônus de vida: forneça uma série de
2000
etapas seguras. Se você fizer isso, o Torturador ficará tão impressionado com sua tenacidade, perseverança e premeditação que eles deixarão você viver. Desta vez. (Trate esta sequência como um número binário e forneça o equivalente decimal para verificação. Isso visa recompensar respostas que terminam rapidamente, pois as respostas podem demorar muito tempo.) - Pontuação: bytes , a menos que você se qualifique para o bônus - multiplique por 0,75 .
1 Há uma boa explicação sobre esse problema e a "solução" de uma das estrelas do Numberphile, James Grime, em seu canal do YouTube aqui: https://www.youtube.com/watch?v=pFHsrCNtJu4 .
2 Essa conjectura de 80 anos, conhecida como problema de discrepância de Erdos, foi provada muito recentemente por Terence Tao. Aqui está um artigo muito bom na Revista Quanta sobre isso: https://www.quantamagazine.org/20151001-tao-erdos-discrepancy-problem/ .
3 Fonte: Um ataque do SAT à conjectura de discrepância de Erdos , de Boris Konev e Alexei Lisitsa. Retirado daqui: http://arxiv.org/pdf/1402.2184v2.pdf .
n=13000
dentro de um ano, talvez dez. Você vai esperar um mês n=2000
? Provavelmente não. E se o fizer , você merece o bônus de qualquer maneira.
n=13000
, as primeiras 2000 instruções ganharão um bônus? Parece inútil, então você provavelmente quis dizer outra coisa?