Esta é a continuação desse desafio de Adnan . Se você gosta desse desafio, é provável que também goste do outro. Confira!
Um teste de escolha múltipla com 8 questões cada um com 4 opções pode ter as respostas: BCADBADA
. Convertido em quatro matrizes diferentes, com verdadeiro e falso, se a letra atual for a resposta, será semelhante a
Q#: 1 2 3 4 5 6 7 8
B C A D B A D A
A: [0, 0, 1, 0, 0, 1, 0, 1]
B: [1, 0, 0, 0, 1, 0, 0, 0]
C: [0, 1, 0, 0, 0, 0, 0, 0]
D: [0, 0, 0, 1, 0, 0, 1, 0]
Isso pode ser compactado usando um pouco de lógica. Cada uma das escolhas A
, B
, C
e D
pode ser representado por dois verdadeiros falsos valores / mostrado abaixo:
A: 1 0
B: 0 1
C: 0 0
D: 1 1
Usando essa lógica, podemos compactar os quatro vetores acima para apenas dois:
1 2 3 4 5 6 7 8
B C A D B A D A
[0, 0, 1, 1, 0, 1, 1, 1]
[1, 0, 0, 1, 1, 0, 1, 0]
Ou seja, a solução para o seu teste é simplesmente: 00110111
, 10011010
. Ao concatená-los, obtemos o número binário
0011011110011010
ou 14234
decimal. Use esse valor decimal para enganar seu teste!
Desafio
Pegue um número N
no intervalo (inclusive) [0, 65535]
e produza uma sequência com a resposta para o teste de múltipla escolha.
Casos de teste:
14234
BCADBADA
38513
ABBDCAAB
0
CCCCCCCC
120
CBBBBCCC
65535
DDDDDDDD
39253
ABCDABCD
A saída pode estar em letras maiúsculas ou minúsculas, mas você não pode usar outros símbolos.
A=10, B=01
, então C=nor(A,B)
, e D=and(A,B)
inspirado pelo desafio de Adnan. Em retrospectiva, poderia ter sido melhor fazê-lo ao contrário, mas bem ... Tarde demais agora ...