Abaixo está um diagrama de tempo digital (esquemático) , para a porta lógica XNOR .
┌─┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐ ┌───┐
A ──┘ └─┘ └─┘ └─┘ └─┘ └─┘ └──
┌───┐ ┌───┐ ┌─┐ ┌─────┐ ┌─┐ ┌─┐
B ┘ └─┘ └─┘ └─┘ └───┘ └─┘ └
┌─────┐ ┌─┐ ┌─┐ ┌───┐
X ──┘ └───┘ └───┘ └───┘ └────
Seu objetivo é reproduzi-lo exatamente como representado.
Regras:
Você pode imprimi-lo ou retornar uma sequência de múltiplas linhas;
O número arbitrário de traling e / ou novas linhas principais é permitido;
O espaço em branco à direita (mas não à esquerda!) É permitido;
Se você não puder usar os caracteres de desenho de caixa ASCII estendidos, poderá substituí-los pelos equivalentes unicode (sem penalidade de bytes).
Isso é código-golfe, então a resposta mais curta em bytes vence.
Representação binária
Para sua conveniência, a representação binária do diagrama acima é a seguinte:
INP A=0101011101010110
INP B=1101101011100101
___
X=A⊕B=0111001001001100
Saída de amostra
Nota
Enquanto trabalhava nessa questão, implementei duas soluções diferentes para o bash, uma com 122 caracteres / bytes (como mostrado acima), e outra com exatamente 100 bytes.
Não tenho planos de publicá-las (como normalmente não posto respostas para minhas próprias perguntas), então isso é apenas para referência.
Eu também acredito que pelo menos algumas soluções abaixo de 100 bytes são possíveis.
Respostas:
05AB1E , 101 bytes
+ 5bytesUTF-8 = 116 bytes totais =106 bytes(VERSÃO LEGACY 05AB1E, NÃO MAIS NO TIO)
Experimente online!
A compactação:
A conversão:
Usando a codificação CP-1252 .
fonte
Åв
(eu também tenho atualizado a ponta gerador de ASCII-art com isso): 106 bytesBubblegum , 76 bytes
Experimente online!
Usa caracteres de desenho de caixa do conjunto alternativo de caracteres do VT100, que o TIO não pode demonstrar. Execute em um terminal UNIX para obter melhores resultados. Meu terminal converte o ACS em UTF-8 em copiar e colar, para que você possa ver o efeito aqui.
Bem, o desafio não disse que precisa tomar a parte de trás do terminal para fora de modo ACS antes de retornar para o shell. Boa sorte com isso.
fonte
Ruby, 113 bytes
contando símbolos impressos como um byte, conforme autorizado pelo desafio (fiquei surpreso ao descobrir que na verdade são 3 bytes).
6 linhas de saída se prestam a uma codificação de 6 bits por cada caractere da string mágica. Mas os caracteres da string mágica, na verdade, codificam para cada transição assim:
Isso é decodificado para localizar os 2 caracteres que devem ser impressos para cada transição (o primeiro é espaço ou uma linha horizontal.) As cadeias de caracteres de 8 caracteres para as linhas superior e inferior se sobrepõem: Os dois últimos caracteres da linha superior
11
são duas linhas horizontais, que correspondem ao que é necessário para os dois primeiros caracteres da linha inferior00
. Os 8 caracteres da linha inferior são agrupados: são os últimos 6 e os 2 primeiros caracteres da sequência de símbolos.Código ungolfed
fonte
If you can not use the extended ASCII box-drawing characters, you may substitute them for the unicode equivalents (at no byte penalty)
Todos nós pontuamos nossas respostas de acordo com as regras.PowerShell, 255 caracteres, 265 bytes (UTF-8)
Isso funciona no meu computador, mas não parece analisar os bytes corretamente no TIO ...
Isso define
$a
como uma sequência de várias linhas preenchida com números e espaços e, em seguida, faz um loop0..4|%{...}
. A cada iteração, obtemos-replace
o dígito apropriado$_
com o caractere apropriado'┌─┐┘└'[$_]
e o armazenamos novamente$a
. Em seguida, deixamos$a
o pipeline e a produção está implícita.fonte
JavaScript (ES6),
163158154 bytesNota: contando caracteres UTF-8 como bytes, conforme autorizado pelo desafio.
Demo
Mostrar snippet de código
Guardado 4 bytes graças a Neil
fonte
j%2?" ─"[p^i&1]:" ┐┌─└┘ "[p+(p=[27370,42843,12878][i>>1]>>j/2&1)*2+i%2*3]
salva 3 bytes.C,
213205 bytesPara variar, o tamanho do programa C, nesse desafio, não é completamente ridículo comparado a outros idiomas.
Sem jogar, definir expandido e comentar:
Nota: a cadeia C não deve conter caracteres unicode. Todos os caracteres exibidos devem ser caracteres simples de 8 bits antigos (mas podem ser escolhidos no intervalo estendido). Então, basicamente, a validade da saída depende da sua página de código.
fonte
tcl, 221 caracteres, 299 bytes
pode ser executado em: http://rextester.com/live/VVQU99270
fonte