Un approccio che è facile da ricordare e facile da articolare in un'intervista sarebbe quello di utilizzare il fatto che se si guardano tutti i numeri in N bit, ciascun bit verrà impostato esattamente nella metà di quei valori e non nell'altra metà .
Se esegui l'iterazione su tutti i valori nel file e mantieni 32 conteggi dei valori alla fine, otterrai 32 valori che sono esattamente (2 ^ 32/2) o leggermente inferiori a quel valore. La differenza tra il massimo (2 ^ 32/2) e il totale fornisce i bit totali impostati in ciascuna posizione dei valori mancanti.
Una volta ottenuto ciò, è possibile determinare tutti i possibili set di 4 valori che potrebbero fornire tali totali. Detto questo, è quindi possibile scorrere nuovamente i valori nel file controllando eventuali valori che fanno parte di tali combinazioni. Quando ne trovi uno, le combinazioni che contengono quel valore vengono eliminate come possibilità. Una volta che è rimasta una sola combinazione possibile, hai la risposta.
Ad esempio utilizzando un bocconcino, hai i seguenti valori:
1010
0110
1111
0111
1101
1001
0100
0101
0001
1011
1100
1110
I bit totali impostati in ciascuna posizione sono:
7867
Sottraendo quelli da 8 (4 ^ 2/2) otteniamo:
1021
Ciò significa che ci sono questi seguenti possibili set di 4 valori:
1000
0000
0011
0010
1010
0001
0010
0000
(perdonami se ne ho perso qualcuno, lo sto facendo solo a vista)
E poi guardando di nuovo i numeri originali, troviamo subito 1010, il che significa che il primo set è stata la risposta.