Soit un polynôme sur un champ fini fixe. Supposons qu'on nous donne la valeur de P sur un vecteur y ∈ { 0 , 1 } n et le vecteur y .
Nous voulons maintenant calculer la valeur de sur un vecteur y ′ ∈ { 0 , 1 } n de telle sorte que y et y ′ diffèrent sur exactement une position (en d'autres termes, nous inversons exactement un bit en y ). Quels sont l'espace et les compromis temporels pour ce problème?
Par exemple, si est le nombre de monômes en P , nous pouvons stocker les coefficients et les valeurs de tous les monômes en P . Si y i est inversé, nous fixons la valeur de chaque monôme contenant y i puis la valeur de P ( y ) en utilisant les informations stockées. Dans l'ensemble, nous avons besoin de temps et d'espace O ( r ) .
(Je ne dis rien sur la façon dont nous identifions les monômes contenant à des fins spécifiques. Vous pouvez choisir n'importe quelle représentation raisonnable de P , dans l'exemple, je suppose que nous stockons une liste de monômes contenant y i pour chaque i .)
Y a-t-il quelque chose de mieux?
la source
Il est facile de modifier votre approche de stockage des monômes afin que chaque mise à jour ne prenne du temps que proportionnellement au nombre de monômes modifiés: il suffit de mettre à jour la valeur totale du polynôme en ajoutant la nouvelle valeur et en soustrayant l'ancienne valeur pour chaque monôme modifié.
la source