introduzione
Supponiamo per un momento che le vipere e la scogliera siano a soli due passi, anziché tre.
o
---
Hsss! |
';;' ___ /_\ ___ _
|
Sfortunatamente sei prigioniero di un sadico torturatore. È necessario fare un passo sia verso sinistra o verso destra ogni turno. In caso contrario, ti sparano all'istante. Puoi pianificare i tuoi passi in anticipo, ma una volta che fai il primo passo, non puoi cambiare il tuo piano. (E nemmeno dilettarsi; ti spareranno.)
All'improvviso, mi viene in mente un'idea brillante ...
Ah! Posso solo alternare passo a destra e sinistra! Passo a destra, passo a sinistra, passo a destra, passo a sinistra e così via ...
Ah ah ah, non così in fretta. Come ho detto, il torturatore è sadico. Possono scegliere se fare ogni passo, o ogni secondo passo, o ogni terzo passo e così via. Quindi, se scegli ingenuamente la sequenza RLRLRL...
, possono costringerti a fare ogni secondo passo, che inizia con LL
. Uh Oh! Sei stato morso dalle vipere! L'oscurità piomba su di te e tutto il resto svanisce ...
In realtà no, non sei ancora morto. Devi ancora elaborare il tuo piano. Dopo averci pensato per qualche minuto, ti rendi conto di essere condannato. Non c'è modo di pianificare una serie di passaggi che garantiranno la tua sopravvivenza. Il meglio che puoi inventare è RLLRLRRLLRR
. 1 Undici passaggi sicuri e non di più. Se il dodicesimo passo è R
, allora il Torturatore ti farà fare ogni passo e poi gli ultimi tre passi ti manderanno giù dalla scogliera. Se il dodicesimo passo è L
, allora il Torturatore ti farà fare ogni terzo passo ( LRLL
), il che ti mette nella covata di vipere e dei loro morsi letali.
Scegli R
il dodicesimo passo, sperando di ritardare la tua morte il più a lungo possibile. Con il vento che ruggisce nelle orecchie, ti chiedi a te stesso ...
E se avessi tre passaggi?
Avviso spoiler!
Moriresti ancora. A quanto pare, indipendentemente da quanti passi hai, ci sarà qualche punto in cui, indipendentemente dalla scelta che fai, c'è una sequenza di passi che il tuo torturatore può scegliere per assicurarti di incontrare il tuo destino mortale. 2 Tuttavia, quando le vipere e la scogliera sono a tre passi di distanza, puoi fare un totale di 1160 passi sicuri e quando sono a quattro passi, ci sono almeno 13.000 passi sicuri! 3
La sfida
Dato un singolo numero intero n < 13000
, genera una sequenza di n
passaggi sicuri, supponendo che la scogliera e le vipere siano a quattro passi di distanza.
Regole
- Può essere un programma completo o una funzione.
- L'input può essere acquisito tramite STDIN o equivalente o come argomento di funzione.
- Uscita deve avere due caratteri distinti (che può essere
+/-
,R/L
,1/0
, ecc). - Qualsiasi spazio bianco nell'output non ha importanza.
- Non è consentita la codifica hardware di una soluzione. Ciò banalizzerebbe questa sfida.
- Il tuo programma dovrebbe (in teoria) terminare in un discreto periodo di tempo. Come in,
n=13000
potrebbe richiedere un mese, ma non dovrebbe richiedere mille anni o più. Cioè, nessuna forza bruta. (Beh, almeno cerca di evitarlo.) - Bonus vita: fornire una serie di
2000
passaggi sicuri. Se lo fai, il Torturatore sarà così impressionato dalla tua tenacia, perseveranza e previdente che ti lasceranno vivere. Questa volta. (Tratta questa sequenza come un numero binario e fornisci l'equivalente decimale per la verifica. Questo ha lo scopo di premiare le risposte che finiscono rapidamente poiché le risposte possono richiedere molto tempo.) - Punteggio: byte , a meno che non si qualifichi per il bonus - moltiplicare per 0,75 .
1 C'è una buona spiegazione di questo problema e "soluzione" di una delle star di Numberphile, James Grime, sul suo canale YouTube qui: https://www.youtube.com/watch?v=pFHsrCNtJu4 .
2 Questa congettura di 80 anni, nota come il problema della discrepanza di Erdos, è stata recentemente dimostrata da Terence Tao. Ecco un bellissimo articolo su Quanta Magazine a riguardo: https://www.quantamagazine.org/20151001-tao-erdos-discrepancy-problem/ .
3 Fonte: A SAT Attack on the Erdos Discrepancy Conjecture , di Boris Konev e Alexei Lisitsa. Estratto da qui: http://arxiv.org/pdf/1402.2184v2.pdf .
n=13000
entro un anno, forse dieci. Aspetterai un mese n=2000
? Probabilmente no. E se lo fai , allora ti meriti comunque il bonus.
n=13000
, le prime 2000 istruzioni di esso vinceranno un bonus? Sembra inutile, quindi probabilmente intendevi qualcos'altro?