Vamos a considerar un tonto mirando pregunta primero. Considere la posibilidad de Z/pZ. Dicen que me permite hacer las dos operaciones x->x+1 y x->2*x. Luego, comenzando desde 0, no puedo expresar todo elemento de y y de Z/pZ en O(log p) pasos; por otra parte, puedo averiguar cómo hacerlo en tiempo O(log p).
La respuesta es trivial: acaba de levantar y a un entero, y se expresan en la base 2.
Ahora, ¿qué sucede si consideramos que x->r*x en lugar de x->2*x?
(Suponga que r es de orden al menos >> log p, ya que de lo contrario las cosas no funcionan.)
Que es: se puede expresar cada elemento y de Z/pZ en O(log p) pasos empezando desde 0 y utilizando las operaciones x->x+1 y x->r*x? Si es así, se puede averiguar cómo expresar ese elemento en el que se forma en O(log p) (o O((log p)^c)) pasos?