Professional Documents
Culture Documents
Q2.1
public void stateTransitionFunction(char inputC)
{
switch(inputC)
{
case 'a':
switch(this.currentState)
{
case "q1":
this.setCurrentState("q1");
this.setCurrentOutput('0');
break;
case "q2":
this.setCurrentState("q1");
this.setCurrentOutput('0');
break;
case "q3":
this.setCurrentState("q1");
this.setCurrentOutput('0');
break;
case "q4":
this.setCurrentState("q3");
this.setCurrentOutput('1');
break;
case "q5":
this.setCurrentState("q2");
this.setCurrentOutput('1');
break;
}
break;
case 'b':
switch(this.currentState)
{
case "q1":
this.setCurrentState("q4");
this.setCurrentOutput('1');
break;
case "q2":
this.setCurrentState("q5");
this.setCurrentOutput('1');
break;
case "q3":
this.setCurrentState("q5");
this.setCurrentOutput('1');
break;
case "q4":
this.setCurrentState("q4");
this.setCurrentOutput('1');
break;
case "q5":
this.setCurrentState("q5");
this.setCurrentOutput('1');
break;
}
break;
}
}// End of Method
Q2.2 public String getBinaryStringOutput(String inputStr)
{
String binaryString="";
if(inputStr.length()==0)
return binaryString;
resetMachine();
int len= inputStr.length();
for(int i=0;i<len;i++)
{
char in= inputStr.charAt(i);
0/2 Marks
0/2 Marks
0/3 Marks
this.stateTransitionFunction(in);
0/3 Marks
binaryString=binaryString+this.currentOutput;
0/2 Marks
}
return binaryString;
}// End of Method
Q2.3
public int getMachineEquivalent(FSM other)
{
int equivalent=0;
0/2 Marks
String difflenstr[]=this.getInputStringsofLength(inputAlphabets,i);
for (int j=0;j<difflenstr.length;j++)
{
0/2 Marks
String s1 = this.getBinaryStringOutput(difflenstr[j]);
String s2 = other.getBinaryStringOutput(difflenstr[j]);
if (s1.equals(s2))
continue;
else
return equivalent;
0/2 Marks
0/2 Marks
0/3 Marks
0/2 Marks
0/6 Marks