Oitava, 53 52 bytes
Fazer uma reescrita completa me ajudou a obter o código de 5 bytes, mas tive que adicionar mais no-ops, tornando-o uma economia de rede de apenas 1 byte.
@(_)~diff(sum(de2bi(+_)))%RRPPPVVVW?????????________
Não consigo adicionar um link TIO, pois nenhum dos intérpretes online implementou a caixa de ferramentas de comunicação necessária de2bi. Mudá-lo para em dec2binvez disso custaria 4 bytes (2 para código ativo e duas não operacionais).
Não encontrei nenhuma maneira de evitar nenhuma das 27 no-ops. Todos os nomes de funções e parênteses estão entre abaixo de 64 ou superior a 96, significando que todos os caracteres "necessários" têm um 1 na 6ª posição (da direita, 2 ^ 5). Eu tinha uma solução com apenas 23 no-ops, mas o código em si era mais longo. O código real é 25 bytes e possui a seguinte soma da coluna ao contar os bits do equivalente binário:
15 22 6 15 10 9 13
Existem 22 bits na 6ª posição da direita (2 ^ 5) e apenas 6 bits na 4ª posição da direita (2 ^ 3). Isso significa que precisamos adicionar pelo menos 16 bytes para obter 6 e 22. Agora, o caractere de comentário %adiciona um pouco à 6ª posição, aumentando-o para 23. Todos os caracteres ASCII imprimíveis precisam de pelo menos um dos dois top bits para ser 1. Portanto, adicionar 17 bytes nos dará pelo menos 27 bits em cada um dos dois "pontos principais" (2 ^ 6 e 2 ^ 5). Agora, temos 27 bits nos dois primeiros lugares e 22 no resto. Para obter um equilíbrio, precisamos adicionar 10 bytes, para obter 32 bits em cada posição.
Uma explicação do novo código (52 bytes):
@(_)~diff(sum(de2bi(+_)))
@(_) % An anonymous function that take a variable _ as input
% We use underscore, instead of a character, since it has the
% most suitable binary represetation
de2bi(+_) % Convert the input string to a binary matrix
sum(de2bi(+_)) % Take the sum of each column
diff(sum(de2bi(+_))) % And calculate the difference between each sum
~diff(sum(de2bi(+_))) % Negate the result, meaning 0 becomes true,
% and everything else becomes false
Um vetor contendo apenas 1s (verdadeiro) é avaliado como verdadeiro no Oitava, e um vetor contendo pelo menos um zero é avaliado como falso no Oitava.
Uma explicação do código antigo (53 bytes):
@(_)!((_=sum(de2bi(+_)))-_(1))%RRRFVVVVVVVVV_____????
@(_) % An anonymous function that take a variable _ as input
% We use underscore, instead of a character, since it has the
% most suitable binary represetation
! % Negate the result, meaning 0 becomes true, and everything else becomes false
de2bi(+_) % Convert the input string to a binary matrix
sum(de2bi(+_)) % Take the sum of each column
(_=sum(de2bi(+_))) % Assign the result to a new variable, also called _
% It's not a problem that we use the same variable name, due
% to the order of evaluation
((_=sum(de2bi(+_)))-_(1)) % Subtract the first element of the new variable _
% If all elements of the new variable _ are identical, then this
% should give us a vector containing only zeros,
% otherwise, at least one element should be non-zero
!((_=sum(de2bi(+_)))-_(1)) % And finally, we negate this.
Um vetor contendo apenas 1s (verdadeiro) é avaliado como verdadeiro no Oitava, e um vetor contendo pelo menos um zero é avaliado como falso no Oitava.