Łatwo zauważyć, że możemy bez problemu rozpoznać język L_p', który działa dokładnie tak samo, z taką różnicą, że wczytujemy słowa od lewej (od najbardziej znaczącego bitu).
Widzimy, że L_p' = \{ w^R | w \in L_p \} i skorzystamy z tego, że NDFA się łatwo odwracają. Pokażę teraz krótko konstrukcję automatu rozpoznającego odwrócony język.
Niech A = \langle \Sigma, Q, q_0, F, \delta \rangle, to A^R = \langle \Sigma, Q \cup \{q_z\}, q_z, \{q_0\}, \delta' \}. Idea konstrukcji jest taka:
Formalniej,
Innymi słowy, jesteśmy w stanie rozpoznać odwrócony język używając jednego stanu więcej.
No dobrze, uzbrojeni w tą wiedzę, możemy krótko opisać automat z zadania. Nietrudno skonstruować NDFA (a nawet DFA) rozpoznający L_p'. Niech Q = \{q_0\} \cup \{0, \ldots, p-1\}, krawędzie zaś są postaci: \delta(q_0, a) = a \wedge \delta(r, a) = (2r + a) mod\ p, gdzie oczywiście a \in \{0,1\}. Automat na p+1 stanów, także ten rozpoznający odwrócony - p+2. Koniec.