Étant donné un ensemble de formules comme ceci:
bacb
bcab
cbba
abbc
Donnez un algorithme qui trouve le nombre de résultats uniques que vous pouvez obtenir lorsque chaque variable est remplacée par "0" ou "1" dans chaque formule.
Il existe des (k!)^2
formules, chacune avec des 2k-1
variables et des k^2
termes. Exprimez vos asymptotiques en termes de k
.
L'algorithme le plus rapide gagne. En cas d'égalité, la solution avec une utilisation asymptotique de la mémoire plus faible l'emporte. Si c'est toujours une égalité, le premier post l'emporte.
Pour l'exemple ci-dessus, les résultats suivants peuvent être obtenus en remplaçant les variables:
1110, 0110, 1001, 0100, 1000, 0000, 0010, 1101, 1111, 0001, 1011, 0111
Donc, la bonne réponse est 12. Entre autres, 1010
ne peut pas être faite en utilisant les formules ci-dessus.
J'ai fait trois autres cas de tests, avec des solutions respectives de 230 , 12076 et 1446672 .
a
, b
... est une variable de ? Et nous n'avons toujours qu'un nombre inégal de variables? Peu importe la longueur de la séquence de variables et le nombre de formules qui vous sont données?