TOC Practical File 18
TOC Practical File 18
TOC Practical File 18
THEORY OF COMPUTATIONS
CS - 501
Submitted To -
Submitted By -
Dr. Deepak Gupta.
Aditya Jha
Assoc. Prof.
0905CS191018
Dept. Of CSE
CSE – 5th Sem
INDEX
S. No. EXPERIMENTS
1 Design a DFA over the input set {a,b} accept all the string starting with
symbol a.
2 -Design a DFA over the input set {0,1}. accept all the Strings Starting
with 0 and ending with 1.
3 Design a Program for creating machine that accepts three consecutive
one.
4 Design a Program for creating machine that accepts the string always
ending with 101.
5 Design a Program for Mode 3 Machine.
DIAGRAM:-
PYTHON CODE:-
def q0(s,i):
if len(s) == i:
print("Rejected")
return;
q1(s,i+1);
else:
qd(s,i+1)
def qd(s,i):
if len(s) == i:
print("Rejected")
return;
qd(s,i+1);
else:
qd(s,i+1)
def q1(s,i):
if len(s) == i:
print("Accepted")
return;
q1(s,i+1);
else:
q1(s,i+1)
if _name_ == "_main_":
q0(s,0);
OUTPUT:-
Experiment:2
Aim:-Design a DFA over the input set {0,1}. accept all the
Strings Starting with 0 and ending with 1.
Diagram:-
CODE:-
def q0(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
qd(s,i+1);
else:
q1(s,i+1)
def q1(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q2(s,i+1);
else:
q1(s,i+1)
def qd(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
qd(s,i+1);
else:
qd(s,i+1)
def q2(s,i):
if len(s) == i:
print("Accepted")
return;
elif (s[i] == '1'):
q2(s,i+1);
else:
q1(s,i+1)
OUTPUT:-
Experiment:3
Diagram:-
CODE:-
def q0(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q1(s,i+1);
else:
q0(s,i+1)
def q1(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q2(s,i+1);
else:
q0(s,i+1)
def q2(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q3(s,i+1);
else:
q0(s,i+1)
def q3(s,i):
if len(s) == i:
print("Accepted")
return;
elif (s[i] == '1'):
q3(s,i+1);
else:
q3(s,i+1)
OUTPUT:-
Experiment:4
Diagram:-
CODE:-
def q0(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q1(s,i+1);
else:
q0(s,i+1)
def q1(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q1(s,i+1);
else:
q2(s,i+1)
def q2(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q3(s,i+1);
else:
q0(s,i+1)
def q3(s,i):
if len(s) == i:
print("Accepted")
return;
elif (s[i] == '1'):
q1(s,i+1);
else:
q2(s,i+1)
OUTPUT:-
Experiment:5
Diagram
0905CS191018 Aditya Jha
CODE:-
def q0(s,i):
if len(s) == i:
print("Accepted")
return;
elif (s[i] == '1'):
q1(s,i+1);
else:
q0(s,i+1)
def q1(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q0(s,i+1);
else:
q2(s,i+1)
def q2(s,i):
if len(s) == i:
print("Rejected")
return;
elif (s[i] == '1'):
q2(s,i+1);
else:
q1(s,i+1)
OUTPUT:-
Experiment:6
Diagram:-
Code:-
def q0(s,i):
if len(s)==i:
print("Accepted")
return;
if (s[i]=='1'):
q1(s,i+1)
else:
q0(s,i+1)
def q1(s,i):
if len(s)==i:
print("rejected")
return;
if (s[i]=='1'):
q1(s,i+1)
else:
q0(s,i+1)
if _name_ == "_main_":
s = input("Enter a string")
q0(s,0);
Output:-
Experiment:7
Diagram:-
Code:-
def q0(s,i):
if len(s) == i:
print("Accepted")
return;
q2(s,i+1);
else:
q1(s,i+1)
def q1(s,i):
if len(s) == i:
print("Rejected")
return;
q3(s,i+1);
else:
q0(s,i+1)
def q2(s,i):
if len(s) == i:
print("Rejected")
return;
q0(s,i+1);
else:
q3(s,i+1)
def q3(s,i):
if len(s) == i:
print("Rejected")
return;
else:
q2(s,i+1)
if _name_ == "_main_":
q0(s,0);
Output:-
Experiment:8
CODE:-
def q0(s,i,c0,c1):
if len(s) == i:
return;
c1 = c1 + 1
q1(s,i+1,c0,c1);
else:
c0 = c0 + 1
q0(s,i+1,c0,c1)
def q1(s,i,c0,c1):
if len(s) == i:
return;
elif (s[i] == '1'):
c1 = c1 + 1
q1(s,i+1,c0,c1);
else:
c0 = c0 + 1
q0(s,i+1,c0,c1)
if _name_ == "_main_":
count_0 = 0
count_1 = 0
q0(s,0,count_0,count_1);
OUTPUT:-
Experiment:9
Diagram:-
CODE:-
def q0(s, i):
if len(s) == 0 or len(s) == i:
return
q1(s,i+1)
print('1',end="")
else:
q0(s,i+1)
print('0',end="")
def q1(s,i):
if len(s) == 0 or len(s) == i:
return
q1(s,i+1)
print('0',end="")
else:
q1(s,i+1)
print('1',end="")
def my_function(x):
return x[::-1]
if _name_ == "_main_":
s = my_function(mystr)
q0(s,0)
OUTPUT:-
Experiment:10
CODE:-
def q0(s, i):
if len(s) == 0 or len(s) == i:
return
q2(s,i+1)
print('0',end="")
else:
q1(s,i+1)
print('1',end="")
def q1(s,i):
if len(s) == 0 or len(s) == i:
return
q1(s,i+1)
print('1',end="")
else:
q1(s,i+1)
print('0',end="")
def q2(s,i):
if len(s) == 0 or len(s) == i:
return
q2(s,i+1)
print('0',end="")
else:
q1(s,i+1)
print('1',end="")
def my_function(x):
return x[::-1]
if _name_ == "_main_":
s = my_function(mystr)
q0(s + '0',0)
OUTPUT:-
Experiment:11
CODE:-
import pandas as pd
nfa = {}
for i in range(n):
state = input("state name : ") #Enter state name eg: A, B, C, q1, q2 ..etc
for j in range(t):
print("\nNFA :- \n")
nfa_table = pd.DataFrame(nfa)
print(nfa_table.transpose())
###################################################
###################################################
for y in range(t):
###################################################
for _ in range(len(new_states_list[0])):
for i in range(len(path_list)):
for j in range(len(new_states_list[0])):
s = ""
print("\nDFA :- \n")
dfa_table = pd.DataFrame(dfa)
print(dfa_table.transpose())
dfa_states_list = list(dfa.keys())
dfa_final_states = []
for x in dfa_states_list:
for i in x:
if i in nfa_final_state:
dfa_final_states.append(x)
break
OUTPUT:-