Esto parece casi trivial, pero dado que después de un esfuerzo no pude superar la solución literal en J, pensé que podría ser un desafío decente (aunque, para ser claros, este no es un desafío específico de J).
El título lo dice todo. Simplemente necesita escribir un programa o función (sin argumentos) que devuelva o imprima:
N NE E SE S SW W NW
Puede usar nuevas líneas en lugar de espacios.
Una función sin argumentos que devuelve una matriz de cadenas como
['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']
También es aceptable.
Las letras pueden ser mayúsculas o minúsculas, pero no pueden mezclarse.
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5
. Desafortunadamente, el código J requerido para luego mapear esos resultados en letras terminó siendo más costoso que un literal.1, 1+i, i, -1+i, -1, -1-i, -i, 1-i
por lo que tienes una parte real o imaginaria por dirección cardinal en lugar de dos. Sin embargo, probablemente sea más difícil generarlos, a menos que haya alguna forma de redondear esos poderes de i lejos de 0. No sé lo fácil o difícil que sería en J, pero es una idea.Respuestas:
Lienzo , 12 bytes.
Pruébalo aquí!
La cuerda, simplemente comprimida.
fuente
"NESW "
) y luego en base-5 almacena al individuo caracteres.bash (24 bytes)
usando la expansión de la llave
tiene la misma longitud que la codificación rígida
sin embargo, se vuelve más interesante al generar más puntos de la brújula
expansión de llaves
de lo contrario, si se pudiera cambiar el orden (17 bytes), el truco es que sin comillas, el parámetro de cadena vacía desaparece
fuente
mount -t proc{,,}
cp file{,.bak}
Mornington Crescent ,
43953823 bytesPruébalo en línea!
Dado que es un poco esperable que leas todo eso, permíteme darte una visión general rápida de mi enfoque. La idea principal es almacenar 3 copias de los caracteres
N
,E
,S
,W
en varias estaciones de la línea Circle, a través del Banco - Hammersmith. Estos personajes se construyen desde el comienzo del nombre de una estación en Charing Cross. Luego, construyadesde el medio del nombre de una estación bien elegida usando Mile End y Charing Cross, y almacénelo en el Banco para que pueda recogerse en Hammersmith en la concatenación. Finalmente, concatene los personajes uno por uno en Paddington, copiándolos nuevamente a través de Bank - Hammersmith si es necesario reutilizarlos más tarde.
Creo que la solución actual es bastante óptima con esta estrategia, al menos en términos de número de estaciones visitadas: solo 2 veces usé una estación solo para el tránsito:
Todas las demás visitas a la estación fueron, si no olvidé una, ya sea almacenar / recuperar algo útil o (parte de) usar la capacidad de la estación.
En cuanto a las longitudes de línea, he tratado de elegir los nombres más cortos en Circle Line, pero puede haber una mejora menor allí. Es posible que almacenar algo en el Distrito pueda reducir algunos bytes.
fuente
Ne
, asden,Sw
iss Cottage, Acton Town
y Mansion House
) 2. Intente explotar el Paddington hecho de que hace más fácil concatenar `` W en lugar deW
. Esto requiere un poco más de gastos generales para 'actualizar' Paddington, por lo que no puede ganar nada.PHP , 19 bytes
Pruébalo en línea!
Sacando esto del camino. Alguien lo hará eventualmente.
fuente
brainfuck ,
142139131119 bytesPruébalo en línea!
Simplemente realice un bucle 10 veces para llenar las celdas con 30, 70, 80 y 90, luego retroceda y avance y ajuste los valores de las celdas para imprimir los caracteres requeridos. No muy diferente del estándar "¡Hola, mundo!".
fuente
Brain-Flak , 204 bytes
Pruébalo en línea!
fuente
MarioLANG ,
249221 bytesPruébalo en línea!
fuente
Deadfish ~ ,
188183 bytes-5 gracias a los calamares
Pruébalo en línea!
fuente
{i}dc
al final de 183Fórmula Excel,
5957 bytesLo siguiente debe ingresarse como una fórmula de matriz ( Ctrl+ Shift+ Enter):
Después de ingresar la fórmula como una fórmula de matriz, resáltela en la barra de fórmulas y evalúela usando F9para devolver el resultado, por ejemplo:
Antes de:
Después:
Cómo funciona
La
ADDRESS
función devuelve una cadena que representa una referencia basada en dos parámetros,row
ycol
. El tercer parámetro controla qué tipo de referencia se devuelve, una referencia absoluta o relativa. Por ejemplo,=ADDRESS(1,2,4)
vuelve"B1"
.Podemos suministrar una matriz
ADDRESS
y usarla como una fórmula de matriz para devolver múltiples resultados, por ejemplo,=ADDRESS(1,{1,2,3},4)
devoluciones"A1","B1","C1"
.Por lo tanto, en mi respuesta, la matriz suministrada
ADDRESS
son solo los números de columna relacionados con los puntos de brújula requeridos, por ejemplo, la columna 14 es la columnaN
, la columna 369 es la columnaNE
.Sin embargo, no hemos terminado aquí, ya que todas las referencias devueltas tienen la fila incluye, por ejemplo,
N1
,NE1
. Por lo tanto, simplemente usamosSUBSTITUTE
para eliminar el1
de todas las referencias.fuente
=IF(1,"N NE E SE S SW W NW")
valido?Triangularidad , 71 bytes
Pruébalo en línea!
Hay dos espacios en la última línea para alcanzar el recuento de bytes. La triangularidad requiere.
fuente
Carbón , 14 bytes
Pruébalo en línea! El enlace es una versión detallada del código ... que es solo la cadena que se imprimirá, ya que el desverbosificador automático se encarga de la compresión de la cadena.
La impresión de la cadena sin comprimir toma 19 bytes, ya que el carbón imprime ASCII imprimible literalmente. La mejor respuesta algorítmica que pude encontrar lamentablemente toma 20 bytes:
Pruébalo en línea! Salidas que utilizan el formato de matriz (costaría dos bytes unir los elementos en los espacios). Funciona notando que las letras de la cadena
SNWE
se usan solo cuando el índice externo actual es igual o está a 1 distancia (módulo 8) en cualquier dirección desde el elemento correspondiente de la lista de índices4,0,6,2
.fuente
brainfuck , 117 bytes
Pruébalo en línea!
Este código creará primero los caracteres "EN SW" en la memoria y luego se moverá hacia adelante y hacia atrás para imprimirlos. El espacio está en el medio, porque se imprime con mayor frecuencia. N y S y W y E nunca aparecen juntos, por lo que están en lados opuestos de la memoria. Para la optimización, algunos de los decrementos finales ocurren durante la fase de salida.
fuente
Python 2 ,
62615853 bytesPruébalo en línea!
No es genial, pero al menos no es una impresión simple.
fuente
Jalea ,
1615 bytesUn programa completo que imprime el texto.
Pruébalo en línea!
dieciséis...
Un enlace niládico que produce una lista de listas de caracteres (minúsculas).
Pruébalo en línea!
Alternativa 15 como un enlace niládica que produce una lista de caracteres (en minúsculas) (con espacios):
“¡XÇŀqỵÑ’ṃ“¡⁴ṁ»
.fuente
Commodore BASIC (TheC64Mini, C64, C128, VIC-20, etc.) 28 bytes BASIC tokenizados utilizados
En Commodore BASIC, no necesita las comillas de cierre en
PRINT
oLET
declaraciones de ya que el intérprete lo cerrará automáticamente, esto ahorra un token BASIC.Alternativamente, uno puede simplemente usar el modo directo de la siguiente manera:
Commodore BASIC 23 personajes PETSCII (+
RETURN
para ejecutar)No estoy seguro de cómo contar el número de bytes utilizados en esta instancia según el intérprete
?
yPRINT
usar el mismo número de bytes, y no hay ningún programa almacenado en la memoria.fuente
PRINT
también puede reemplazarse?
, ahorrando cuatro bytes.PRINT
y?
usa la misma cantidad de tokens BASIC. No cuento los caracteres PETSCII, ya que no es muy representativo de la cantidad de memoria disponible que está utilizando el intérprete.Japt , 16 bytes
Devuelve una matriz de cadenas en minúsculas. La cadena comprimida era de 18 bytes, pero se usaba
a
como delimitador en su lugar y luego la división en eso resultó más corta.Pruébelo : el pie de página formatea la salida.
fuente
Deadfish ~ , 138 bytes
Pruébalo en línea!
Por lo tanto, la salida en minúsculas con nuevas líneas es mejor que la predeterminada (mayúsculas con espacios).
Este código fue generado por mi optimizador, escrito en C ++ (¡gracias a squid por otra idea de optimización!):
fuente
Archivo por lotes, 19 bytes
La pregunta nunca indicó que tenía que generar
N NE E SE S SW W NW
y nada más,ni que no podía salir debido a un error después de hacerlo,este código solo arroja un error pero no sale debido a él.Salida
Archivo por lotes, 25 bytes
Solo
N NE E SE S SW W NW
salida sin errores ni bloqueos.fuente
'N NE E SE S SW W NW'
- obtendrá algo como:N NE E SE S SW W NW - command not found
Python2, 59 bytes
El número mágico son los índices de tres bits unidos en la cadena de caracteres, orden inverso para que podamos comenzar a iterar en el LSB.
Pasé un tiempo tratando de reducir el número mágico, pero la repetición de la cadena de caracteres mediante la multiplicación para permitir índices adicionales no funciona debido a la necesidad de codificar el espacio, lo mejor que obtuve por la superposición de índices en la búsqueda agregó más caracteres al cadena que dígitos eliminados del número mágico (incluyendo un par de desafortunados no importa en el medio):
fuente
K (ngn / k) ,
2322 bytes-1 byte gracias a ngn!
Pruébalo en línea!
J ,
3430 bytesPruébalo en línea!
fuente
" "
<->"W"
(0
<->4
en la base 5), el espacio estará al final y podemos eliminarlo porque la indexación de cadenas fuera de límites da un espacio de todos modos:"WNES"@5\7108085518230
05AB1E , 14 bytes
Pruébalo en línea!
Esto imprime la cadena excepto en minúsculas.
fuente
•
para -1Brachylog , 19 bytes
Pruébalo en línea!
Salidas como una lista.
ḍ₄ḍᵐc
ahorra dos bytes al escribir siete espacios y hacer que todo el predicado sea literal de cadena, por lo que al menos vincula PHP ...Traté de ser inteligente
3⟦{;"NESW"↺₍h₂a₀ᶠ}ᵐc
, pero no podía obtener SE o NW correctamente, y de todos modos es un byte más largo.fuente
Espacio en blanco , 151 bytes
Se agregaron letras
S
(espacio),T
(tabulación) yN
(nueva línea) solo como resaltado.[..._some_action]
agregado solo como explicación.Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Explicación:
La constante
84
es generada por este programa Java que escribí para otro desafío que respondí en Whitespace .fuente
MathGolf ,
2017 bytes-3 bytes gracias a @maxb .
Pruébalo en línea.
Explicación:
fuente
É
yÄ
en este caso) todavía me confunden un poco a veces ... A veces no estoy seguro de cuándo debo usar esos bloques de código o no. Tum+
no usa uno por ejemplo. Pero tuÄ
es un bloque de código de tamaño 1. IntentémÅî╪
todavía ver qué sucedió, por eso ahora entiendo por qué hay un bloque de código de tamaño 1Ä
para empezar. :)) Gracias por los -3 bytes, sin embargo. Todavía hay mucho que aprender que veo.{}
.mÅî╪
crea la asignación, pero no tiene un ciclo for dentro de la asignación. Si escribem{î{╪}}
, quizás sea más fácil ver que el código es "map to: loop <index> times, and rotate the string each loop". La razón por lam+
que no tiene uno es que ciertos comandos tienen bloques implícitos de 1 byte (mapa, filtro, reducción, etc.), peroî
no es un comando destinado a usarse en combinación con un bloque.{...}
, pero olvidé queinteger{
es un bucle for. :) AhoraîÄ╪
tiene mucho más sentido. ¡Gracias por la explicación!CSS ,
4239 bytes(gracias a un arácnido de piedra para la versión revisada)
fuente
body:after{content:"N NE E SE S SW W NW"
Semilla , 6014 bytes
Genera el siguiente programa befunge:
fuente
Hodor , 177 bytes
Pruébalo en línea!
fuente
Ensamblaje (x86, Linux), 68 bytes
Fuente:
¿Código tomado principalmente del más corto ELF para "Hola mundo \ n"?
fuente
Jalea , 16 bytes
Pruébalo en línea!
Con pie de página para imprimir separados por espacios
Un enlace niládico que devuelve una lista de cadenas. 2 bytes más cortos (y posiblemente más interesantes) que la cadena comprimida en Jelly.
fuente
C # (compilador interactivo de Visual C #) , 24 bytes
Pruébalo en línea!
fuente