Lo scopo di questa sfida è di rappresentare graficamente una camminata sul piano, in cui la direzione di ogni passo è determinata dalla primalità di e dalla parità della sua espansione binaria. In particolare,
- La direzione iniziale è fissa, ad esempio Nord.
- Tutti i passaggi hanno la stessa lunghezza .
- La direzione del passaggio può essere Nord, Ovest, Sud o Est ed è determinata come segue:
- Se non è primo, la direzione non cambia.
- Se è primo e l'espansione binaria di ha un numero pari, girare a destra.
- Se è primo e l'espansione binaria di ha un numero dispari di quelli, girare a sinistra.
Ad esempio , supponiamo che la direzione iniziale sia Nord. I primi passi sono:
- non è un numero primo. Quindi facciamo un passo nella direzione attuale, che è il Nord.
- è primo e la sua espansione binaria
10
ha un numero dispari di quelli. Quindi giriamo a sinistra e ora siamo rivolti a ovest. Facciamo un passo in quella direzione. - è primo, e la sua espansione binaria
11
, ha e un numero pari di quelli. Quindi giriamo a destra e ora siamo rivolti a nord. Facciamo un passo in quella direzione. - non è un numero primo. Quindi facciamo un passo nella direzione attuale, che è il Nord.
La sfida
Ingresso : intero positivo .
Output : diagramma della camminata -passo come definito sopra.
Regole aggiuntive
- La direzione iniziale può essere scelto liberamente (non necessariamente Nord), ma dovrebbe essere la stessa per tutti .
- La regola di svolta può essere l'opposto di quella sopra descritta, ovvero girare a destra per parità dispari e a sinistra per pari; ma deve essere la stessa per tutti .
- L'output deve essere una rappresentazione grafica della camminata. Per esempio:
- La passeggiata può essere tracciata con segmenti di linea.
- I punti visitati possono essere mostrati con un pennarello, come un punto; con o senza segmenti di linea di collegamento.
- È possibile fornire un'immagine raster a due colori, con un colore corrispondente ai punti visitati e un altro per i non visitati.
- Le scale degli assi orizzontale e verticale non devono necessariamente essere le stesse. Anche le etichette degli assi e gli elementi simili sono opzionali. Finché la passeggiata può essere vista chiaramente, la trama è valida.
- Si noti che alcuni punti vengono visitati più di una volta. La trama non è sensibile a questo. Ad esempio, se i segmenti di linea vengono visualizzati nel grafico, ogni segmento di unità viene visualizzato allo stesso modo, indipendentemente da quante volte è stato attraversato.
- Il codice dovrebbe funzionare per qualsiasi
N
data risorsa illimitata. È accettabile se in pratica fallisce aN
causa di limiti di tempo, memoria o tipo di dati. - Ingresso e uscita sono flessibili come al solito. In particolare, è possibile utilizzare uno qualsiasi dei mezzi standard per produrre immagini.
- Vince il codice più breve in byte.
Casi test
I seguenti grafici usano Nord come direzione iniziale; anche la parità gira a destra; e la passeggiata è raffigurata con segmenti di linea.
N = 7
:
N = 3000
:
N = 20000
:
N = 159000
:
N = 1200000
:
N = 11000000
:
[graphical-output]
è permesso? Qualche motivo in particolare per impedire l'output ASCII, come la mia risposta Charcoal ora cancellata?