| shwlinux 
 
 
 가입: 2011년 9월 26일
 올린 글: 39
 
 
 | 
			
				|  올려짐: 2011년11월19일 3:26    주제: 숙제 7-1 테스트셋 |   |  
				| 
 |  
				| 예전에 튜링머신과제를 할 때 많은 학우님들께서 수고해주신 테스트셋을 모아보았습니다. 
 첫번째, 두번째 테스트셋은 김원배학우님의 테스트셋이며
 
 세번째 테스트셋은 항상 멋진 테스트셋을 올려주시는 유강민님의 테스트셋입니다.
 
 그리고 첫번째, 두번째 테스트셋을 Ocaml으로 옮기는 작업은
 
 조인규 학우님이 하셨습니다
   
 많은 학우님들 감사합니다.
 
 
 사용방법은 Ocaml 실행후 자신의 파일을 연 뒤 소스를 붙여넣고 바로 엔터 치시면됩니다.
 
 답은
 
 one one one one one
 b a a a a a b a b b a a a a a b a b
 one one one one one BLANK one one one one one
 
 으로 알고 있습니다.
 
 혹시나 잘못되었다면 정정 부탁드립니다.
 
 
 
 
  	  | 코드: |  	  | open TuringMachine
 
 let rt =
 [("s0", "one", Write "one", Left, "s0");
 ("s0", "plus", Write "one", Left, "s1");
 ("s1", "one", Write "one", Left, "s1");
 ("s1", "BLANK", Erase, Right, "s2");
 ("s2", "one", Erase, Right, "s3");
 ("s3", "one", Write "one", Right, "s3");
 ("s3", "BLANK", Erase, Left, "s4")]
 
 let rt1 =
 [("s0", "a", Write "a_1", Left, "s1");
 ("s0", "b", Write "b_1", Left, "s2");
 ("s1", "a", Write "a", Left, "s1");
 ("s1", "b", Write "b", Left, "s1");
 ("s1", "a_2", Write "a_2", Left, "s1");
 ("s1", "b_2", Write "b_2", Left, "s1");
 ("s1", "BLANK", Write "a_2", Right, "s3");
 ("s2", "a", Write "a", Left, "s2");
 ("s2", "b", Write "b", Left, "s2");
 ("s2", "a_2", Write "a_2", Left, "s2");
 ("s2", "b_2", Write "b_2", Left, "s2");
 ("s2", "BLANK", Write "b_2", Right, "s3");
 ("s3", "a_2", Write "a_2", Right, "s3");
 ("s3", "b_2", Write "b_2", Right, "s3");
 ("s3", "a", Write "a", Right, "s_noend");
 ("s3", "b", Write "b", Right, "s_noend");
 ("s3", "a_1", Write "a_1", Left, "s_semifinal");
 ("s3", "b_1", Write "b_1", Left, "s_semifinal");
 ("s_noend", "a", Write "a", Right, "s_noend");
 ("s_noend", "b", Write "b", Right, "s_noend");
 ("s_noend", "a_1", Write "a_1", Left, "s0");
 ("s_noend", "b_1", Write "b_1", Left, "s0");
 ("s_semifinal", "a_2", Write "a_2", Left, "s_semifinal");
 ("s_semifinal", "b_2", Write "b_2", Left, "s_semifinal");
 ("s_semifinal", "BLANK", Erase, Right, "s_ff");
 ("s_ff", "a_2", Write "a", Right, "s_ff");
 ("s_ff", "a_1", Write "a", Right, "s_ff");
 ("s_ff", "b_2", Write "b", Right, "s_ff");
 ("s_ff", "b_1", Write "b", Right, "s_ff");
 ("s_ff", "BLANK", Erase, Left, "s_final")]
 
 let rt2 =
 [("s1", "BLANK", Erase, Stay, "H");
 ("s1", "one", Erase, Left, "s2");
 ("s2", "BLANK", Erase, Left, "s3");
 ("s2", "one", Write "one", Left, "s2");
 ("s3", "BLANK", Write "one", Right, "s4");
 ("s3", "one", Write "one", Left, "s3");
 ("s4", "BLANK", Erase, Right, "s5");
 ("s4", "one", Write "one", Right, "s4");
 ("s5", "BLANK", Write "one", Left, "s1");
 ("s5", "one", Write "one", Right, "s5")]
 
 let _ =
 print_tm (run_tm (make_tm ["one";"one";"one";"plus";"one";"one"] ["s4"] "s0" rt));
 print_newline();
 print_tm (run_tm (make_tm ["b";"a";"a";"a";"a";"a";"b";"a";"b"] ["s_final"] "s0" rt1));
 print_newline();
 print_tm (run_tm (make_tm ["one";"one";"one";"one";"one"] ["H"] "s1" rt2));
 print_newline();;
 
 | 
 
 shwlinux 가 2011년11월22일 23:13에 수정함, 총 1 번 수정됨
 |  |