Nota: Esta é a versão de proteção contra radiação do meu desafio anterior, a Pristine Bit Checking . Isso deve ser muito mais difícil que esse.
Escreva um programa / função que use dois números inteiros no intervalo de a , inclusive, e retorne se as formas binárias dos números são exatamente um pouco diferentes.
Por exemplo, e têm formas binárias e , que estão um pouco separadas. Da mesma forma, e são e , portanto, eles retornam verdadeiros.00000001
00000000
010011000
000011000
No entanto , seu código deve ser protegido contra radiação , de modo que, se algum bit do seu programa for invertido, ele ainda funcionará corretamente. Por exemplo, se o seu programa era o byte únicoa
(01100001
), todos os 8 programas modificados possíveis:
á ! A q i e c `
ainda deve funcionar corretamente. Verifique se você está modificando por bytes (por exemplo, o á
lá em cima realmente representa o byte , não o caractere real de dois bytes ).á
Casos de teste:
Com o significado de Truthy, eles são diferentes em um pouco.
0,1 => Truthy
1,0 => Truthy
152,24 => Truthy
10,10 => Falsey
10,11 => Truthy
11,12 => Falsey
255,0 => Falsey
Regras:
- Forneça uma estrutura de teste que possa verificar se o seu programa está adequadamente protegido contra radiação, pois haverá muitos programas possíveis (número de bytes * 8), ou então uma prova completa de validade.
- Verifique se o seu programa é válido antes de publicá-lo.
- A saída pode ser truthy / falsey (o caminho é bom), ou então como um valor distinto para truthy e o restante como falsey
- Isso pode ser feito através de qualquer um dos métodos padrão de entrada / saída
Aqui está um programa auxiliar que pode ser usado para produzir todas as variações de um programa inserido.