497 views
0 votes
0 votes
For a string $x=a_0a_1 \ldots a_{n-1}$ over the alphabet $\{0, 1, 2\}$, define $val(x)$ to be the value of $x$ interpreted as a ternary number, where $a_0$ is the most significant digit. More formally, $val(x)$ is given by $$ \Sigma_{0 \leq i < n} 3^{n-1-i} \cdot a_i.$$

Design a finite automaton that accepts exactly the set of strings $ x \in \{0, 1, 2\}^*$ such that $val(x)$ is divisible by 4.

3 Answers

0 votes
0 votes

We are talking about base 3 numbers in class modulo 4.

val(x) denotes the value of x in decimal, where the string is given in the format from MSB to LSB.

Let us say after processing i digits, val(a0a1a2...ai) = n, then 

If ai+1 = 0, val(a0a1a2...ai) = n*3 + 0

If ai+1 = 1, val(a0a1a2...ai) = n*3 + 1

If ai+1 = 2, val(a0a1a2...ai) = n*3 + 2

Since we are only interested in mod 4 of these numbers, let us say n is either of 4*n, 4*n+1, 4*n + 2, 4*n + 3 (i.e. n leaves a remainder of 0, 1, 2, 3 on mod 4 respectively). We will construct the transition function as below:

  0 1 2
4*n          (S0) ((4*n)*3)%4 = 0 (S0) ((4*n)*3+1)%4 = 1 (S1) ((4*n)*3+2)%4 = 2 (S2)
4*n + 1   (S1) ((4*n+1)*3)%4 = 3 (S3) ((4*n+1)*3+1)%4 = 0 (S0) ((4*n+1)*3+2)%4 = 1 (S1)
4*n + 2   (S2) ((4*n+2)*3)%4 = 2 (S2) ((4*n+2)*3+1)%4 = 3 (S3) ((4*n+2)*3+2)%4 = 0 (S0)
4*n + 3   (S3) ((4*n+3)*3)%4 = 1 (S1) ((4*n+3)*3+1)%4 = 2 (S2) ((4*n+3)*3+2)%4 = 3 (S3)

From this we can easily construct a DFA, with 4 states, with initial and final states as S0. We can even add a new start state because this DFA will even accept ε. 

0 votes
0 votes

There is an algorithm for construction of such DFA

To construct in mod x DFA in base b

number of rows = x

number of columns = b

number of entries = x*b

number of states in DFA = x

so for our example x=4 base b=3 

state ={q0,q1,q2,q3}  q0 = remainder 0 , q1= remainder 1 and so on 

Now we will construct transition table for such DFA

fill out entries q0,q1,q2 in circular order till the end of the column and start with next state in next row first column 

State \input 0 1 2
q0 q0 q1 q2
q1 q3 q0 q1
q2 q2 q3 q0
q4 q1 q2 q3

one can see pattern q0,q1,q2,q3 is repeated in transition diagram 

number of rows = 4 number of column =3 and entires = 12

Related questions

1 votes
1 votes
2 answers
1
1 votes
1 votes
2 answers
2
go_editor asked Dec 31, 2016
524 views
Consider the funciton $M$ defined as follows:$M(n) = \begin{cases} n-10 & \text{ if } n 100 \\ M(M(n+11)) & \text{ if } n \leq 100 \end{cases}$Compute the following$: M(...
1 votes
1 votes
1 answer
3
0 votes
0 votes
1 answer
4
go_editor asked Dec 31, 2016
487 views
Consider the funciton $M$ defined as follows:$M(n) = \begin{cases} n-10 & \text{ if } n 100 \\ M(M(n+11)) & \text{ if } n \leq 100 \end{cases}$Compute the following$: M(...