פתרון שאלה 4- המשך
כעת נעבור למכונה:
מצב | אות | מצב חדש | פעולה | הערות |
s | # | Split.n |
# # |
מצב התחלתי – מימין לקלט |
Split.n |
∑ ∑ |
Split.n | L | |
Split.n | 1 | Split.n |
1 1 |
פיצול והעתקת N למסלול התחתון |
Split.n | # | Split.m |
1 # |
החלפת ה # המפריד ב1 |
Split.m |
1 # |
Splite.m | L | פיצול M |
Split.m | ∑ | Splite.m |
∑ # |
|
Split.m |
# # |
Find.1 | R | הגענו לסוף M, נחפש את ה"1" במסלול התחתון |
Find.1 |
1 # |
Find.1 | R | |
Find.1 |
1 1 |
Pick.1 |
1 # |
מצאנו, נעתיק לצד שמאל |
Find.1 |
# # |
Move.L | R | לא מצאנו במסלול התחתון אחד, לכן סיימנו להזיזו |
Pick.1 |
1 # |
Pick.1 | L | |
Pick.1 |
# # |
Write.1 | R | הגענו לצד שמאל המסלול התחתון |
Pick.1 |
1 1 |
Write.1 | R | הגענו למילה המועתקת במסלול התחתון |
Write.1 |
1 # |
Write.1 |
1 1 |
|
Write.1 |
1 1 |
Find.1 | R | נחפש את ה 1 הבא להזיז לשמאל |
Move.L |
1 ∑ |
Move.L | L | סיימנו להזיז את N (במסלול התחתון), זזים שמאלה |
Move.L |
# # |
Find.# | R | |
Find.# |
1 1 |
Find.# | R | מחפשים את סוף N (ע"י #) במסלול התחתון. |
Find.# |
1 # |
Go.L |
# 1 |
שמים # (שלב ד') וזזים שמאלה |
Go.L |
or 1 or 1 # 1 # 1 |
Go.L | L | |
Go.L |
# # |
Unsplite.1 |
1 1 |
מחזירים למסלול יחיד |
Unsplit.1 |
∑ ∑ |
Unsplite.2 |
∑ |
משאירים רק את תוכן המסלול העליון |
Unsplit.1 | # | H | R | הגענו לאות הראשונה שאינה מוחלפת. |
Unsplit.2 |
∑ |
Unsplite.1 | R |