A continuación se muestra un diagrama de temporización digital (esquemático) , para la puerta lógica XNOR .
┌─┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ ┌───┐
A ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └──
┌───┐ ┌───┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐
B ┘ └─┘ └─┘ └─┘ └───┘ └─┘ └
┌─────┐ ┌─┐ ┌─┐ ┌───┐
X ──┘ └───┘ └───┘ └───┘ └────
Su objetivo es reproducirlo exactamente como se muestra.
Reglas:
Puede imprimirlo o devolver una cadena de varias líneas;
Se permite un número arbitrario de líneas nuevas y / o iniciales nuevas;
Se permite el espacio en blanco al final (¡pero no al inicio!);
Si no puede usar los caracteres de dibujo de cuadro ASCII extendidos, puede sustituirlos por los equivalentes Unicode (sin penalización de byte).
Este es el código de golf, por lo que gana la respuesta más corta en bytes.
Representacion Binaria
Para su comodidad, la representación binaria del diagrama anterior es la siguiente:
INP A=0101011101010110
INP B=1101101011100101
___
X=A⊕B=0111001001001100
Salida de muestra
Nota al margen
Mientras trabajaba en esta pregunta, he implementado dos soluciones bash diferentes para ella, una tiene 122 caracteres / bytes de longitud (como se muestra arriba) y otra tiene exactamente 100 bytes de longitud.
No tengo planes de publicarlos (ya que normalmente no publico respuestas a mis propias preguntas), así que eso es solo para referencia.
También creo que al menos algunas soluciones de menos de 100 bytes son posibles.
Respuestas:
05AB1E , 101 bytes
+ 5bytesUTF-8 = 116 bytes totales =106 bytes(LEGADO VERSIÓN 05AB1E, YA NO EN TIO)
Pruébalo en línea!
La compresión:
La conversión:
Usando la codificación CP-1252 .
fuente
Åв
(también he actualizado la sugerencia del generador de arte ASCII con esto): 106 bytesChicle , 76 bytes
Pruébalo en línea!
Utiliza caracteres de dibujo de recuadro del conjunto de caracteres alternativo VT100, que TIO no puede demostrar. Ejecutar en un terminal UNIX para obtener mejores resultados. Mi terminal convierte el ACS a UTF-8 en copiar y pegar, para que pueda ver el efecto aquí.
Pues bien, el reto no dijo que necesitamos para tomar la parte posterior del terminal a cabo de modo ACS antes de regresar a la cáscara. Buena suerte con eso.
fuente
Ruby, 113 bytes
contando los símbolos impresos como un byte según lo autorizado por el desafío (me sorprendió descubrir que en realidad son 3 bytes).
6 líneas de salida se prestan a una codificación de 6 bits por cada carácter de la cadena mágica. Pero los caracteres de la cadena mágica en realidad codifican para cada transición así:
Esto se decodifica para encontrar los 2 caracteres que deben imprimirse para cada transición (el primero de los cuales es espacio o una línea horizontal). Las cadenas de 8 caracteres para las filas superior e inferior se superponen: los dos últimos caracteres para la fila superior
11
son dos líneas horizontales, que coinciden con lo que se necesita para los dos primeros caracteres de la fila inferior00
. Los 8 caracteres para la fila inferior se envuelven: son los últimos 6 y los primeros 2 caracteres de la cadena de símbolos.Código sin golf
fuente
If you can not use the extended ASCII box-drawing characters, you may substitute them for the unicode equivalents (at no byte penalty)
Todos hemos calificado nuestras respuestas de acuerdo con las reglas.PowerShell, 255 caracteres, 265 bytes (UTF-8)
Esto funciona en mi computadora, pero no parece analizar los bytes correctamente en TIO ...
Esto se convierte
$a
en una cadena de varias líneas llena de números y espacios, luego bucles0..4|%{...}
. Cada iteración, tenemos-replace
el dígito apropiado$_
con el carácter apropiado'┌─┐┘└'[$_]
y lo almacenamos nuevamente$a
. Luego, simplemente dejamos$a
en la tubería y la salida es implícita.fuente
JavaScript (ES6),
163158154 bytesNB: contar los caracteres UTF-8 como bytes, según lo autorizado por el desafío.
Manifestación
Mostrar fragmento de código
Guardado 4 bytes gracias a Neil
fuente
j%2?" ─"[p^i&1]:" ┐┌─└┘ "[p+(p=[27370,42843,12878][i>>1]>>j/2&1)*2+i%2*3]
ahorra 3 bytes.C,
213205bytesPara variar, el tamaño del programa C, en este desafío, no es completamente ridículo en comparación con otros lenguajes.
Ungolfed, define expandido y comentado:
Nota: la cadena C no debe contener caracteres unicode. Todos los caracteres que se pueden mostrar deben ser caracteres viejos de 8 bits (pero se pueden elegir en el rango extendido). Básicamente, la validez de la salida depende de su página de códigos.
fuente
tcl, 221 caracteres, 299 bytes
se puede ejecutar en: http://rextester.com/live/VVQU99270
fuente