Octava, 53 52 bytes
Hacer una reescritura completa me ayudó a desarrollar el código de 5 bytes, pero tuve que agregar más operaciones no, lo que lo hizo un ahorro neto de solo 1 byte.
@(_)~diff(sum(de2bi(+_)))%RRPPPVVVW?????????________
No puedo agregar un enlace TIO, ya que ninguno de los intérpretes en línea ha implementado la caja de herramientas de comunicación necesaria para de2bi. Cambiarlo a su dec2binlugar costaría 4 bytes (2 para el código de trabajo y dos no-ops).
No encontré ninguna forma de evitar ninguna de las 27 operaciones no operativas. Todos los nombres de funciones y paréntesis se encuentran entre 64 o menos de 96, lo que significa que todos los caracteres "necesarios" tienen un 1 en la sexta posición (desde la derecha, 2 ^ 5). Tenía una solución con solo 23 no-ops, pero el código en sí era más largo. El código real es de 25 bytes y tiene la siguiente suma de columnas al contar los bits del equivalente binario:
15 22 6 15 10 9 13
Hay 22 bits en la sexta posición desde la derecha (2 ^ 5), y solo 6 bits en la cuarta posición desde la derecha (2 ^ 3). Eso significa que tenemos que agregar al menos 16 bytes, para obtener el 6 hasta el 22. Ahora, el carácter de comentario %agrega un poco a la sexta posición, incrementándolo a 23. Todos los caracteres ASCII imprimibles necesitan al menos uno de los dos pedazos superiores para ser 1. Por lo tanto, agregar 17 bytes nos dará al menos 27 bits en cada uno de los dos "puntos principales" (2 ^ 6 y 2 ^ 5). Ahora, tenemos 27 bits en los dos primeros lugares, y 22 en el resto. Para llegar a un equilibrio, tenemos que agregar 10 bytes, para llegar a 32 bits en cada posición.
Una explicación del nuevo 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
Un vector que contiene solo 1s (verdadero) se evalúa como verdadero en Octave, y un vector que contiene al menos un cero se evalúa como falso en Octave.
Una explicación del código anterior (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.
Un vector que contiene solo 1s (verdadero) se evalúa como verdadero en Octave, y un vector que contiene al menos un cero se evalúa como falso en Octave.