Re: [SPOILER] Perl 'Hard' Quiz of the Week #2005-03-22
Jeffrey M. Vinocur <[email protected]> Thu, 31 Mar 2005 19:19:53 -0500
| Newsgroups | gmane.comp.lang.perl.qotw.discuss |
|---|---|
| Message-ID | <[email protected]> |
On Mar 25, 2005, at 11:53 AM, Greg Bacon <[email protected]> wrote: > [...] got stuck when > I realized all powers of two would land in the same state, for > instance. I even tried to think of a way to use the pumping lemma > to show that the reversed language isn't regular. I haven't been following this thread very closely, but by "reversed language" you still mean the set of strings encoding (in whatever representation) the integers that evenly divide some N, right? If so, then it doesn't matter what the representation is -- even something as absurd as binary digits alternately taken from the most- and least-significant ends of the number -- the language in question only contains a finite number of strings. (Clearly no number larger than N will divide evenly, which gives a crude upper bound.) All finite languages are regular. I agree that it's not intuitive what the equivalence classes "mean" (which I believe is what gave you pause), but they must exist. And this means that, if no obvious generation algorithm springs to mind, you can simply brute-force the finite DFA (and then minimize it if you like). -- Jeffrey M. Vinocur [email protected]