Une approche facile à retenir et à articuler dans une interview serait d'utiliser le fait que si vous regardez tous les nombres en N bits, chaque bit sera défini dans exactement la moitié de ces valeurs et non dans l'autre moitié .
Si vous parcourez toutes les valeurs du fichier et conservez 32 décomptes à la fin, vous vous retrouverez avec 32 valeurs exactement (2 ^ 32/2) ou légèrement inférieures à cette valeur. La différence entre ce maximum (2 ^ 32/2) et le total vous donne le total des bits définis dans chaque position des valeurs manquantes.
Une fois que vous avez cela, vous pouvez déterminer tous les ensembles possibles de 4 valeurs qui pourraient donner ces totaux. Cela étant, vous pouvez ensuite parcourir les valeurs du fichier en vérifiant à nouveau les valeurs qui font partie de ces combinaisons. Lorsque vous en trouvez une, les combinaisons contenant cette valeur sont éliminées en tant que possibilités. Une fois qu'il ne vous reste qu'une seule combinaison possible, vous avez la réponse.
Par exemple, en utilisant un quartet, vous avez les valeurs suivantes:
1010
0110
1111
0111
1101
1001
0100
0101
0001
1011
1100
1110
Le nombre total de bits définis dans chaque position est:
7867
En soustrayant ceux de 8 (4 ^ 2/2), nous obtenons:
1021
Ce qui signifie qu'il existe les ensembles possibles suivants de 4 valeurs:
1000
0000
0011
0010
1010
0001
0010
0000
(pardonne-moi si j'en ai manqué, je fais juste ça de vue)
Et puis en regardant à nouveau les numéros originaux, nous trouvons 1010 tout de suite, ce qui signifie que le premier ensemble était la réponse.