פתרון שאלה 1- המשך
מצב
אות
מצב חדש
פעולה
הערות
s
#
Pick.n
L
מצב התחלתי- מימין לקלט
Pick.n
1
Find.m
N
הופכים "1" ל-N בשטח ה-n
Pick.n
#
Write.m
R
הגענו ל-# המפריד בין n ל-m, לכן m≤n
Find.m
N
Find.m
L
הולכים לחפש "1" בשטח ה-m
Find.m
1
Find.m
L
חולפים על פני ה-"1"-ים של n
Find.m
#
Pick.m
L
הגענו ל-# המפריד בין n ל-m
Pick.m
M
Pick.m
L
חולפים על פני הM-ים כדי להגיע ל-"1"-ים
Pick.m
1
Find.n
M
הופכים "1" ל-M בשטח ה-m
Pick.m
#
Write.n
R
הגענו ל-# השמאלי. לא מוצאים יותר "1" ב-m , לכן m<n
Find.n
M
Find.n
R
מצאנו "1" ב-m וחוזרים חזרה לעוד סיבוב חיפוש
Find.n
#
Find.n
R
הגענו ל-# המפריד בין n ל-m
Find.n
1
Find.n
R
חולפים על פני ה-"1"-ים עד לימני ביותר
Find.n
N
Pick.n
L
עומדים עכשיו על ה-"1" הימני ביותר, אם יש כזה
Write.m
N
Write.m
R
הולכים ימינה עד הסוף
Write.m
#
Earase.n
L
מוחקים את כל מה שקשור ל-n
Earase.n
N
Earase.n
#
Earase.n
#
Clean.m
L
נעבור להפוך את ה-"M"-ים חזרה ל-"1"-ים
Clean.M
M
Clean.M
1
Clean.M
1
Clean.M
L
Clean.M
#
Go.R
R
הגענו ל-# השמאלי ביותר. חוזרים ימינה לסיים
Write.n
M
Write.n
1
בדרך ימינה נהפוך כל M ל-1
Write.n
1
Write.n
R
Write.n
#
Delete.n
R
הגענו ל-# המפריד.
Delete.n
1,N
Delete.n
R
Delete.n
#
Write.#
L
הגענו לקצה הימני של הסרט
Write.#
1,N
Move.L
#
Write.#
#
Restore.m
1
הגענו ל-# המפריד
Move.L
#
Write.#
L
Restore.m
1
Restore.m
L
Restore.m
M
Restore.m
1
Restore.m
#
Go.R
R
הגענו ל-# השמאלי ביותר
Go.R
1
Go.R
R
הולכים ימינה ל-#
Go.R
#
H
#