Um bom simples
Entrada
Dada uma matriz booleana (ou uma alternativa aceitável), você pode assumir que a matriz nunca terá mais de 32 elementos.
[false, false, true, false, false]
Resultado
Inverta todos os elementos da matriz e faça a saída.
[true, true, false, true, true]
Regras
- Você pode escrever um programa completo ou apenas uma função
- Aplicam-se brechas padrão
- O menor código em bytes, por idioma, ganha!
Casos de teste
Input:
[true, false]
Output:
[false, true]
Input: //Example of acceptable alternative
[0,1,1]
Output:
[1,0,0]
code-golf
array-manipulation
logic
Shaun Wild
fonte
fonte
0
(falso, todos os 0 bits) e-1
(verdadeiro, todos os 1 bits)?Respostas:
05AB1E , 1 byte
Código:
Explicação:
Experimente online!
fonte
Geléia , 1 byte
Experimente online!
¬
é lógico NOT (1 se falso-y, caso contrário 0).C
("Complemento", 1-z ) também funciona.fonte
Javascript ES6, 15 bytes
Acho que não há muita explicação
fonte
Matlab,
41 byteIsso deve ser auto-explicativo.
O Matlab possui o operador de negação de um byte
~
, se você quiser uma função, poderá usar@not
.fonte
@
rgument,n
eGate,o
utput,t
erminate, certo?~
é uma resposta apropriada, pois é um operador que recebe um argumento. Eu acho que~[1,0,0,1,0]
é inteiramente apropriado.Haskell, 7 bytes
Exemplo:
fonte
not<$>
, mas essa não é uma expressão válida; você não pode escreverf = not<$>
e entãof [False, True, True]
; as fatias do operador precisam de parênteses em torno deles, o que contribuiria para a contagem de bytes.MATL , 1 byte
Experimente online!
~
é a lógica not e tantas funções, também pode ser aplicada a matrizes / matrizes.fonte
C, 46 bytes versão recursiva
C, versão iterativa de 47 bytes
Executar usando esta função principal
e entrada como esta
fonte
R, 1 byte
Exemplo:
Também funciona com entrada numérica:
Também não estamos restritos a matrizes unidimensionais. Vamos criar uma matriz e preenchê-la aleatoriamente com 0s e 1s:
Podemos inverter isso com a mesma facilidade:
Podemos continuar fazendo isso para números arbitrários de dimensões. Aqui está um exemplo em uma matriz quadridimensional:
Receio que não funcione para personagens.
fonte
Perl 6 , 4 bytes
Versão "francesa" / Unicode:
Versão "Texas" / ASCII:
Entrada é um valor único que pode ser tratado como uma lista.
Isso é aa Qualquer que seja lambda (
*
) com o operador lógico não prefixo (!
) combinado usando o operador hiper prefixo («
) .Efetivamente, é o mesmo que:
Uso:
fonte
{!«@_}
:)!**
deve funcionar tambémLabirinto , 9 bytes
Experimente online! Assume a entrada separada por nova linha com uma nova linha à direita. Obrigado a @MartinEnder pela ajuda com o golfe.
Este programa é um pouco estranho para um programa de labirinto - ele não faz uso da natureza 2D da linguagem e, na verdade, salta para frente e para trás. Na primeira viagem, temos:
A próxima ocorrência de
$
então XORs o 0 existente na pilha comc
, em oposição a um 0 implícito na parte inferior da pilha, como na primeira execução. Ambas as situações deixam a pilha como[c]
e o programa se repete posteriormente.9 bytes alternativos:
fonte
:)
Mathematica, 7 bytes
ou sem letras:
Quanto ao açúcar sintático:
&
marca a extremidade direita de uma função sem nome e tem precedência muito baixa.#
refere-se ao primeiro argumento do mais próximo e do anexo&
.!
é o operador paraNot
. Assim,!#&
é apenas uma função sem nome que nega seu argumento, ou seja, é idêntica à incorporadaNot
./@
é o operador paraMap
. Portanto, o código também seria equivalente ao mais legívelMap[Not, #]&
.fonte
!#&/@#&
eu devo ler isso? :)Not
não é listávelPython,
272524 bytesAgradecimentos a Lynn por jogar fora dois bytes e xnor e Mego por jogar fora outro.
fonte
0
/1
são permitidas e1-b
são menores quenot b
. Perguntei ao OP se matrizes de0
/-1
são permitidas; nesse caso,~b
é ainda mais curto.for
poderia ser descartado.1for
seria analisado como dois tokens separados. TIL.C #, 19 bytes
como uma função anônima, pega um bool [] e retorna um IEnumerable
ou em 36 bytes com
fonte
Fórmula IBM / Lotus Notes, 2 bytes
Uso:
Crie um formulário do Notes com dois campos chamados a e b.
a (entrada) = editável, número, valores múltiplos, separados por vírgula
b (saída) = calculado, número, múltiplos valores, separado por vírgula
Cole a fórmula acima em be dê um valor padrão de 0.
Crie um novo documento com o formulário, insira uma lista binária em a e pressione F9 para atualizar a saída.
Exemplos:
Funciona porque, dada uma lista como entrada, a fórmula do Notes aplicará qualquer ação especificada a todos os elementos da lista.
fonte
J, 2 bytes
Este é o verbo de negação.
Caso de teste
fonte
Rápido 3 (7 bytes)
por exemplo
Explicação
Parece bastante óbvio. Chama
map
a matriz[true, false]
. O único problema é que, no Swift, os operadores são apenas funções e podem ser passados como argumentos. Isso significamap(!)
passar a função "not"!
paramap
.fonte
Linguagem de programação de Shakespeare , 240 bytes
Recebe entrada como uma sequência de caracteres
\0
e de\1
controle. Saídas como uma sequência de0
ou1
. Se a entrada deve ser o mesmo que a saída, substituaOpen thy heart
comSpeak thy mind
por nenhuma mudança na bytecount. Se\0
e\1
não puder ser usado, faça o acima, mas também substituaOpen your mind
porListen to thy heart
uma pena de 5 bytes.Ungolfed:
Isso se traduz aproximadamente no seguinte pseudocódigo C:
Estou usando esse intérprete . Exemplo de execução:
fonte
JAISBaL , 1 byte
Como todas as outras respostas de 1 byte, este é o operador de negação, que pode operar em uma matriz, se necessário. Isso deixa a saída na pilha, que é impressa no final do programa.
Para dois bytes, a matriz pode ser impressa explicitamente:
A entrada está no formato de matriz incrivelmente estranho do JAISBaL (que eu inventei, mas não gosto ...).
Casos de teste (saída do interpretador Java, 3.0.5):
fonte
PowerShell, 15 bytes
Eu acho que isso pode até funcionar na v1, por isso deixei o número da versão fora do título. Loops através da entrada
$args
e nega cada item por vez. Essa matriz resultante é deixada no pipeline.O mais interessante, no entanto, é porque o PowerShell é tão flexível quanto aos requisitos de conversão, você pode fazer uma entrada completamente mista e obter uma saída booleana apropriada. Por exemplo, aqui estão os valores booleanos literais
$false
/$true
, os números0
1
e123456789
como números inteiros, uma sequência vazia, uma sequência não vazia, uma matriz vazia e uma matriz não vazia -fonte
Perl, 7 bytes
Inclui +2 para
-lp
Atribua a cada valor booleano como 0 ou 1 em sua própria linha
invert.pl
:fonte
Braquilog , 7 bytes
Experimente online!
Explicação
fonte
Queijo Cheddar, 10 bytes
Espero ter contado direito enquanto escrevo por telefone
fonte
fn.vec((!))
se algum dia foi lançado: PJava, 58 bytes
fonte
arr
paraa
(economiza 4 bytes), escreva emint[]a
vez deint a[]
(economiza 1 byte), #:brainfuck (58 bytes)
Experimente aqui
Ungolfed
Toma uma entrada de 1s ou 0s não divididos (11001).
fonte
Código de lógica ,
98 bytesSimples, realmente.
Recebe a entrada como uma sequência binária, pois o Logicode não tem suporte para listas (o que
[true, false]
seria10
).A
out
saída do resultado da linha.O
!
comando calcula o NOT de cada bit da string, então algo como!111
seria000
.A
binp
entrada é binária.1 byte salvo graças a @daHugLenny
fonte
out
e!binp
.CJam , 4 bytes
A entrada é uma lista de
0
s e1
s.Experimente online!
fonte
Japonês, 3 bytes
O Japt não possui entrada booleana; portanto, a entrada é uma matriz de 0s e 1s. Teste online!
Como funciona
fonte
Retina , 3 bytes
Experimente online!
Para cada linha (
%
), conte o número de0
s.fonte
Python 2, 24 bytes (não concorrente)
A lógica é semelhante à de Steven, mas tentei usar a ideia desse comentário, mas diferente, porque ainda leva
0
/1
matrizes, não0
/-1
. Não há barbear de bytes para usar0
/-1
, então vamos ser sensatos. Observe que isso não é competitivo, até que Steven ou Lynn me permitam usar a ideia. Se assim for, eu poderia remover a marca não concorrentes. Observe que esse código não pode ser roubado descaradamente, ele ainda está aqui. Apenas Steven pode usá-lo como resposta.fonte
Ruby, 14 bytes
Função anônima:
Teste-o:
fonte