Questo è il seguito di questa sfida di Adnan . Se ti piace questa sfida, è probabile che ti piacerà anche l'altra. Controlla!
Un test a risposta multipla con 8 domande ciascuno con 4 scelte potrebbe avere le risposte: BCADBADA
. Convertito in quattro matrici diverse, con vero e falso se la lettera attuale è la risposta, sarà simile a questa
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]
Questo può essere compresso usando un po 'di logica. Ciascuna delle scelte A
, B
, C
e D
può essere rappresentato da due valori vero / falso illustrato di seguito:
A: 1 0
B: 0 1
C: 0 0
D: 1 1
Usando questa logica, possiamo comprimere i quattro vettori sopra in soli due:
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]
Cioè, la soluzione al tuo test è semplicemente: 00110111
, 10011010
. Concatenandoli, otteniamo il numero binario
0011011110011010
o 14234
in decimale. Usa questo valore decimale per imbrogliare il tuo test!
Sfida
Prendi un numero N
nell'intervallo (inclusivo) [0, 65535]
e genera una stringa con la risposta al test a scelta multipla.
Casi test:
14234
BCADBADA
38513
ABBDCAAB
0
CCCCCCCC
120
CBBBBCCC
65535
DDDDDDDD
39253
ABCDABCD
L'output può essere in lettere maiuscole o minuscole, ma non è possibile utilizzare altri simboli.
A=10, B=01
, quindi C=nor(A,B)
, e D=and(A,B)
ispirato dalla sfida di Adnan. Con il senno di poi sarebbe stato meglio farlo al contrario, ma beh ... Troppo tardi ora ...