Consider the problem of building a Nondeterministic Finite Automaton (NFA) over to accept ternary numbers that are a multiple of
but not a multiple of
. Here are the first
ternary numbers.
Ternary | Decimal |
![]() | 0 |
![]() | 1 |
![]() | 2 |
![]() | 3 |
![]() | 4 |
![]() | 5 |
![]() | 6 |
![]() | 7 |
![]() | 8 |
![]() | 9 |
![]() | 10 |
![]() | 11 |
![]() | 12 |
![]() | 13 |
![]() | 14 |
![]() | 15 |
![]() | 16 |
![]() | 17 |
![]() | 18 |
Multiples of 3
From the above table, the ternary numbers that are a multiple of
always end with a
. Notice that,
is indeed a multiple of
.
Multiples of 9
From the above table, the ternary numbers that are a multiple of
always end with a
. Notice that,
is indeed a multiple of
.
Multiples of 3 but not a Multiple of 9
Extrapolating from the previous two observations, the ternary numbers that are a multiple of but not a multiple of
are numbers that end with a single
. Thus, the last two digits can be either
or
. The digits before these two digits do not matter.
Regex
A regular expression to express this would be
NFA
The above regular expression can expressed as the following NFA