이 코드는 Python에 있습니다.
from pprint import pprint
def addDictionary(States,Transition,Languaje,Tr):
for s in States :
D = {}
Transition[s] = D # this create {"state1":{"symbol1":}}
for l in Languaje:
for i in range(len(Tr)):
D[l] = Tr[i][0]
def addStates(States):
cant = int(raw_input("how many states?: "))
for i in range(cant):
c = "q"+str(i)
States.append(c)
def addLan(Languaje):
c = int(raw_input("how many symbols?: "))
for j in range(c):
l = raw_input("symbol: ")
Languaje.append(l)
if __name__ == "__main__":
States=[]
Languaje=[]
Transition={} #{"state":{"symbol1":"transition value","symbol2":"transition value"}}
Tr=[["q2","q1"],["","q2"]] #transition values
addStates(States)
addLan(Languaje)
addDictionary(States,Transition,Languaje,Tr)
pprint(Transition)
그리고 이것은 출력입니다.
{'q0': {'a': '', 'b': ''}, 'q1': {'a': '', 'b': ''}}
내가 원하는 것은 다음과 같습니다.
{'q0': {'a': 'q2', 'b': 'q1'}, 'q1': {'a': '', 'b': 'q2'}}
목록의 값을 Tr
내 사전 에 넣고 싶습니다 . 이것은 단지 예제 코드입니다. 대학에서 수업을 위해 개발 한 결정 론적 유한 오토마타를 구현하고 싶습니다.
나는 코드를 먼저 입력을 증명하는 것을 언급하는 것을 잊었다 2
다음과 2
다음 a
과 b
나는 단지 2 × 2의 목록을 내 코드를 증명하기를 원하기 때문에. 나중에 nxm 목록으로 변경하겠습니다. (내 "중간"영어 실력에 대해 죄송합니다 : V)
한 가지 더 : 문제는 함수에 addDictionary()
있습니다.
이:
def addDictionary(States, Transition, Languaje, Tr):
for s, t in zip(States, Tr):
Transition[s] = dict(zip(Languaje, t))
다음 출력을 생성하십시오.
{'q0': {'a': 'q2', 'b': 'q1'}, 'q1': {'a': '', 'b': 'q2'}}
두 가지 상태 및 기호 a
및 b
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다