人們如何從『程式範例』中學習??程式是否能說話,展現想表達的意義!!
【改寫能不能了解更多?】
from pyDatalog import pyDatalog, pyEngine import time pyDatalog.create_terms('有星, 穿越,求解,X地,Y地,N星門,N1星門,N2星門') pyDatalog.create_terms('X1,X2,X3,X4,X5,X6,X7,X8,X9') pyDatalog.create_terms('Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9') pyDatalog.create_terms('P1星門,P2星門') # X地在 N1星門 或 N2星門處有一顆星 "*" 有星(X地, N1星門, N2星門) <= (X地[N1星門] == '*') 有星(X地, N1星門, N2星門) <= (X地[N2星門] == '*') # 合法的穿越法 1 <-> 2, 1 <-> 4, ... X處 = (X1,X2,X3,X4,X5,X6,X7,X8,X9) # 簡記 穿越(X處, 1, 2, Y地) <= 有星(X處, 0, 1) & (Y地 == (X2,X1,X3,X4,X5,X6,X7,X8,X9)) 穿越(X處, 1, 4, Y地) <= 有星(X處, 0, 3) & (Y地 == (X4,X2,X3,X1,X5,X6,X7,X8,X9)) 穿越(X處, 2, 3, Y地) <= 有星(X處, 1, 2) & (Y地 == (X1,X3,X2,X4,X5,X6,X7,X8,X9)) 穿越(X處, 2, 5, Y地) <= 有星(X處, 1, 4) & (Y地 == (X1,X5,X3,X4,X2,X6,X7,X8,X9)) 穿越(X處, 3, 6, Y地) <= 有星(X處, 2, 5) & (Y地 == (X1,X2,X6,X4,X5,X3,X7,X8,X9)) 穿越(X處, 4, 5, Y地) <= 有星(X處, 3, 4) & (Y地 == (X1,X2,X3,X5,X4,X6,X7,X8,X9)) 穿越(X處, 4, 7, Y地) <= 有星(X處, 3, 6) & (Y地 == (X1,X2,X3,X7,X5,X6,X4,X8,X9)) 穿越(X處, 5, 6, Y地) <= 有星(X處, 4, 5) & (Y地 == (X1,X2,X3,X4,X6,X5,X7,X8,X9)) 穿越(X處, 5, 8, Y地) <= 有星(X處, 4, 7) & (Y地 == (X1,X2,X3,X4,X8,X6,X7,X5,X9)) 穿越(X處, 6, 9, Y地) <= 有星(X處, 5, 8) & (Y地 == (X1,X2,X3,X4,X5,X9,X7,X8,X6)) 穿越(X處, 7, 8, Y地) <= 有星(X處, 6, 7) & (Y地 == (X1,X2,X3,X4,X5,X6,X8,X7,X9)) 穿越(X處, 8, 9, Y地) <= 有星(X處, 7, 8) & (Y地 == (X1,X2,X3,X4,X5,X6,X7,X9,X8)) # 求解之法或 X地 到 Y地 直接穿越, # 或先經由若干 Z處,再由 Z處 往 Y地 直接穿越。 Z處 = (Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9) (求解[X地, Y地] == N星門) <= 穿越(X地, P1星門, P2星門, Y地) & (N星門 == [(P1星門, P2星門)]) (求解[X地, Y地] == N星門) <= (求解[X地, Z處] == N1星門) & 穿越(Z處, P1星門, P2星門, Y地) & (N星門 == N1星門 + [(P1星門, P2星門)]) start_time = time.time() print((求解[list('HAAHS*T*G'), list('HASHTAG**')] == N星門) >= N星門) # prints 5-6,2-5,2-3,3-6,5-6,7-8,5-8,8-9,7-8, print("Computed in %f seconds" % (time.time() - start_time)) # 執行結果 >>> start_time = time.time() >>> print((求解[list('HAAHS*T*G'), list('HASHTAG**')] == N星門) >= N星門) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9), (7, 8)) >>> print("Computed in %f seconds" % (time.time() - start_time)) Computed in 96.248452 seconds >>>
【線上可不可試驗未知?】
# >>> dir(Y地) ['_UserList__cast', '__abstractmethods__', '__add__', '__call__', '__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__dict__', '__div__', '__doc__', '__eq__', '__floordiv__', '__format__', '__ge__', '__getattr__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rfloordiv__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__unicode__', '__weakref__', '_abc_cache', '_abc_negative_cache', '_abc_negative_cache_version', '_abc_registry', '_data', '_in', '_not_in', '_pyD_atomized', '_pyD_for', '_pyD_lua', '_pyD_name', '_pyD_negated', '_pyD_precalculations', '_pyD_type', '_pyD_value', '_pyD_variables', '_value', 'append', 'count', 'data', 'extend', 'in_', 'index', 'insert', 'is_variable', 'make_for_prefix', 'not_in_', 'pop', 'remove', 'reverse', 'sort', 'todo', 'v'] >>> >>> help(Y地) >>> print(Y地.__doc__) can be constant, list, tuple, variable or predicate name ask() creates a query
【逐步驗證有沒有好處?】
# >>> print(穿越(list('HAAHS*T*G'), 7, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'A', 'H', 'S', '*', '*', 'T', 'G') >>> Y地.data[0] ('H', 'A', 'A', 'H', 'S', '*', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 5, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'A', 'H', '*', 'S', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 2, 5, Y地)) Y地 --------------------------------------------- ('H', '*', 'A', 'H', 'A', 'S', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 2, 3, Y地)) Y地 --------------------------------------------- ('H', 'A', '*', 'H', 'A', 'S', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 3, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'A', '*', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 5, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', '*', 'A', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 5, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', '*', '*', 'G') >>> print(穿越(list(Y地.data[0]), 8, 9, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', '*', 'G', '*') >>> print(穿越(list(Y地.data[0]), 7, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', 'G', '*', '*') >>>
# >>> print(穿越(list('HAAHS*T*G'), 5, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'A', 'H', '*', 'S', 'T', '*', 'G') >>> print(穿越(list(Y地.data[0]), 2, 5, Y地)) Y地 --------------------------------------------- ('H', '*', 'A', 'H', 'A', 'S', 'T', '*', 'G') >>> print(穿越(list(Y地.data[0]), 2, 3, Y地)) Y地 --------------------------------------------- ('H', 'A', '*', 'H', 'A', 'S', 'T', '*', 'G') >>> print(穿越(list(Y地.data[0]), 3, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'A', '*', 'T', '*', 'G') >>> print(穿越(list(Y地.data[0]), 5, 6, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', '*', 'A', 'T', '*', 'G') >>> print(穿越(list(Y地.data[0]), 7, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', '*', 'A', '*', 'T', 'G') >>> print(穿越(list(Y地.data[0]), 5, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', '*', '*', 'G') >>> print(穿越(list(Y地.data[0]), 8, 9, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', '*', 'G', '*') >>> print(穿越(list(Y地.data[0]), 7, 8, Y地)) Y地 --------------------------------------------- ('H', 'A', 'S', 'H', 'T', 'A', 'G', '*', '*') >>>
【怎樣追跡計算過程?】
# # 注意 print 述詞攔截 python 語言之 print() 函式 >>> pyDatalog.create_terms('追跡, P啞元, print') >>> (追跡[X地, Y地] == N星門) <= 穿越(X地, P1星門, P2星門, Y地) & (N星門 == [(P1星門, P2星門)]) & (P啞元 == print("穿越: ", N星門)) 追跡[2]==(*,X地,Y地,N星門) <= 穿越(X地,P1星門,P2星門,Y地)&==(N星門 >>> (追跡[X地, Y地] == N星門) <= (求解[X地, Z處] == N1星門) & 穿越(Z處, P1星門, P2星門, Y地) & (N星門 == N1星門 + [(P1星門, P2星門)]) & (P啞元 == print("經由: ", N1星門, "再穿越: ", (P1星門, P2星門))) 追跡[2]==(*,X地,Y地,N星門) <= 求解[2]==(*,X地,'["('f', 'Z1' # 追跡 ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9), (7, 8)) 解,注意記憶效應。 >>> print((追跡[list('HAAHS*T*G'), list('HAAHS**TG')] == N星門) >= N星門) 經由: ((7, 8), (3, 6)) 再穿越: (3, 6) ((7, 8), (3, 6), (3, 6)) >>> print((追跡[list('HAAHS*T*G'), list('HAAH*S*TG')] == N星門) >= N星門) 經由: ((5, 6),) 再穿越: (7, 8) ((5, 6), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('H*AHAS*TG')] == N星門) >= N星門) 經由: ((5, 6), (2, 5)) 再穿越: (7, 8) ((5, 6), (2, 5), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HA*HAS*TG')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3)) 再穿越: (7, 8) ((5, 6), (2, 5), (2, 3), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASHA**TG')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3), (3, 6)) 再穿越: (7, 8) ((5, 6), (2, 5), (2, 3), (3, 6), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASH*A*TG')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3), (3, 6), (5, 6)) 再穿越: (7, 8) ((5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASHTA**G')] == N星門) >= N星門) 經由: ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6)) 再穿越: (5, 8) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASHTAG**')] == N星門) >= N星門) 經由: ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9)) 再穿越: (7, 8) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9), (7, 8)) # 追跡 5-6,2-5,2-3,3-6,5-6,7-8,5-8,8-9,7-8, 解,注意計算轉折處。 >>> print((追跡[list('HAAHS*T*G'), list('HAAH*ST*G')] == N星門) >= N星門) 經由: ((5, 6),) 再穿越: (5, 8) ((5, 6), (5, 8)) >>> print((追跡[list('HAAHS*T*G'), list('H*AHAST*G')] == N星門) >= N星門) 經由: ((5, 6),) 再穿越: (2, 5) ((5, 6), (2, 5)) >>> print((追跡[list('HAAHS*T*G'), list('HA*HAST*G')] == N星門) >= N星門) 經由: ((5, 6), (2, 5)) 再穿越: (2, 3) ((5, 6), (2, 5), (2, 3)) >>> print((追跡[list('HAAHS*T*G'), list('HASHA*T*G')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3)) 再穿越: (3, 6) ((5, 6), (2, 5), (2, 3), (3, 6)) >>> print((追跡[list('HAAHS*T*G'), list('HASH*AT*G')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3), (3, 6)) 再穿越: (5, 6) ((5, 6), (2, 5), (2, 3), (3, 6), (5, 6)) >>> print((追跡[list('HAAHS*T*G'), list('HASH*A*TG')] == N星門) >= N星門) 經由: ((5, 6), (2, 5), (2, 3), (3, 6), (5, 6)) 再穿越: (7, 8) ((5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (7, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASHTA**G')] == N星門) >= N星門) 經由: ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6)) 再穿越: (5, 8) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8)) >>> print((追跡[list('HAAHS*T*G'), list('HASHTA*G*')] == N星門) >= N星門) 經由: ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8)) 再穿越: (8, 9) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9)) >>> print((追跡[list('HAAHS*T*G'), list('HASHTAG**')] == N星門) >= N星門) 經由: ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9)) 再穿越: (7, 8) ((7, 8), (5, 6), (2, 5), (2, 3), (3, 6), (5, 6), (5, 8), (8, 9), (7, 8)) >>>
【意圖與邏輯是不是同意的耶?】
上面程式中這個子句有道理嗎
(追跡[X地, Y地] == N星門) <= (求解[X地, Z處] == N1星門) & 穿越(Z處, P1星門, P2星門, Y地) & (N星門 == N1星門 + [(P1星門, P2星門)]) & (P啞元 == print(“經由: “, N1星門, “再穿越: “, (P1星門, P2星門)))
或許應該改作
(追跡[X地, Y地] == N星門) <= (追跡[X地, Z處] == N1星門) & 穿越(Z處, P1星門, P2星門, Y地) & (N星門 == N1星門 + [(P1星門, P2星門)]) & (P啞元 == print(“經由: “, N1星門, “再穿越: “, (P1星門, P2星門)))
print((追跡[list(‘HAAHS*T*G’), list(‘HAAHS**TG’)] == N星門) >= N星門)
經由: ((8, 9),) 再穿越: (8, 9)
經由: ((8, 9),) 再穿越: (6, 9)
經由: ((8, 9),) 再穿越: (5, 6)
經由: ((8, 9),) 再穿越: (3, 6)
經由: ((7, 8),) 再穿越: (7, 8)
經由: ((7, 8),) 再穿越: (6, 9)
經由: ((7, 8),) 再穿越: (5, 6)
經由: ((7, 8),) 再穿越: (4, 7)
經由: ((7, 8),) 再穿越: (3, 6)
經由: ((6, 9),) 再穿越: (8, 9)
經由: ((6, 9),) 再穿越: (7, 8)
經由: ((6, 9),) 再穿越: (6, 9)
經由: ((6, 9),) 再穿越: (5, 8)
經由: ((5, 8),) 再穿越: (6, 9)
經由: ((5, 8),) 再穿越: (5, 8)
經由: ((5, 8),) 再穿越: (5, 6)
經由: ((5, 8),) 再穿越: (4, 5)
經由: ((5, 8),) 再穿越: (3, 6)
經由: ((5, 8),) 再穿越: (2, 5)
經由: ((5, 6),) 再穿越: (8, 9)
經由: ((5, 6),) 再穿越: (7, 8)
經由: ((5, 6),) 再穿越: (5, 8)
經由: ((5, 6),) 再穿越: (5, 6)
經由: ((5, 6),) 再穿越: (4, 5)
經由: ((5, 6),) 再穿越: (2, 5)
經由: ((3, 6),) 再穿越: (8, 9)
經由: ((3, 6),) 再穿越: (7, 8)
經由: ((3, 6),) 再穿越: (5, 8)
經由: ((3, 6),) 再穿越: (3, 6)
經由: ((3, 6),) 再穿越: (2, 3)
經由: ((8, 9), (8, 9)) 再穿越: (5, 6)
經由: ((8, 9), (8, 9)) 再穿越: (3, 6)
經由: ((8, 9), (8, 9)) 再穿越: (6, 9)
經由: ((8, 9), (8, 9)) 再穿越: (7, 8)
經由: ((8, 9), (8, 9)) 再穿越: (8, 9)
經由: ((8, 9), (8, 9)) 再穿越: (5, 8)
經由: ((8, 9), (5, 6)) 再穿越: (8, 9)
經由: ((8, 9), (5, 6)) 再穿越: (6, 9)
經由: ((8, 9), (5, 6)) 再穿越: (5, 8)
經由: ((8, 9), (5, 6)) 再穿越: (5, 6)
經由: ((8, 9), (5, 6)) 再穿越: (4, 5)
經由: ((8, 9), (5, 6)) 再穿越: (2, 5)
經由: ((8, 9), (3, 6)) 再穿越: (8, 9)
經由: ((8, 9), (3, 6)) 再穿越: (6, 9)
經由: ((8, 9), (3, 6)) 再穿越: (3, 6)
經由: ((8, 9), (3, 6)) 再穿越: (2, 3)
經由: ((8, 9), (8, 9)) 再穿越: (7, 8)
經由: ((7, 8), (5, 6)) 再穿越: (7, 8)
經由: ((7, 8), (5, 6)) 再穿越: (5, 8)
經由: ((7, 8), (5, 6)) 再穿越: (5, 6)
經由: ((7, 8), (5, 6)) 再穿越: (4, 7)
經由: ((7, 8), (5, 6)) 再穿越: (4, 5)
經由: ((7, 8), (5, 6)) 再穿越: (2, 5)
經由: ((7, 8), (3, 6)) 再穿越: (7, 8)
經由: ((7, 8), (3, 6)) 再穿越: (4, 7)
經由: ((7, 8), (3, 6)) 再穿越: (3, 6)
經由: ((7, 8), (3, 6)) 再穿越: (2, 3)
經由: ((7, 8), (6, 9)) 再穿越: (8, 9)
經由: ((7, 8), (6, 9)) 再穿越: (7, 8)
經由: ((7, 8), (6, 9)) 再穿越: (6, 9)
經由: ((7, 8), (6, 9)) 再穿越: (4, 7)
經由: ((7, 8), (4, 7)) 再穿越: (6, 9)
經由: ((7, 8), (4, 7)) 再穿越: (5, 6)
經由: ((7, 8), (4, 7)) 再穿越: (4, 7)
經由: ((7, 8), (4, 7)) 再穿越: (4, 5)
經由: ((7, 8), (4, 7)) 再穿越: (3, 6)
經由: ((7, 8), (4, 7)) 再穿越: (1, 4)
經由: ((7, 8), (6, 9)) 再穿越: (6, 9)
經由: ((7, 8), (5, 6)) 再穿越: (5, 6)
經由: ((7, 8), (4, 7)) 再穿越: (4, 7)
經由: ((7, 8), (3, 6)) 再穿越: (3, 6)
經由: ((6, 9), (5, 8)) 再穿越: (8, 9)
經由: ((6, 9), (5, 8)) 再穿越: (6, 9)
經由: ((6, 9), (5, 8)) 再穿越: (5, 8)
經由: ((6, 9), (5, 8)) 再穿越: (5, 6)
經由: ((6, 9), (5, 8)) 再穿越: (4, 5)
經由: ((6, 9), (5, 8)) 再穿越: (2, 5)
經由: ((5, 8), (4, 5)) 再穿越: (4, 5)
經由: ((5, 8), (4, 5)) 再穿越: (4, 7)
經由: ((5, 8), (4, 5)) 再穿越: (3, 6)
經由: ((5, 8), (4, 5)) 再穿越: (1, 4)
經由: ((5, 8), (4, 5)) 再穿越: (6, 9)
經由: ((5, 8), (4, 5)) 再穿越: (5, 6)
經由: ((5, 8), (3, 6)) 再穿越: (5, 8)
經由: ((5, 8), (3, 6)) 再穿越: (5, 6)
經由: ((5, 8), (3, 6)) 再穿越: (4, 5)
經由: ((5, 8), (3, 6)) 再穿越: (3, 6)
經由: ((5, 8), (3, 6)) 再穿越: (2, 5)
經由: ((5, 8), (3, 6)) 再穿越: (2, 3)
經由: ((5, 8), (2, 5)) 再穿越: (6, 9)
經由: ((5, 8), (2, 5)) 再穿越: (5, 6)
經由: ((5, 8), (2, 5)) 再穿越: (3, 6)
經由: ((5, 8), (2, 5)) 再穿越: (2, 5)
經由: ((5, 8), (2, 5)) 再穿越: (2, 3)
經由: ((5, 8), (2, 5)) 再穿越: (1, 2)
經由: ((5, 6), (4, 5)) 再穿越: (8, 9)
經由: ((5, 6), (4, 5)) 再穿越: (7, 8)
經由: ((5, 6), (4, 5)) 再穿越: (5, 8)
經由: ((5, 6), (4, 5)) 再穿越: (4, 7)
經由: ((5, 6), (4, 5)) 再穿越: (4, 5)
經由: ((5, 6), (4, 5)) 再穿越: (1, 4)
經由: ((5, 6), (2, 5)) 再穿越: (8, 9)
經由: ((5, 6), (2, 5)) 再穿越: (7, 8)
經由: ((5, 6), (2, 5)) 再穿越: (5, 8)
經由: ((5, 6), (2, 5)) 再穿越: (2, 5)
經由: ((5, 6), (2, 5)) 再穿越: (2, 3)
經由: ((5, 6), (2, 5)) 再穿越: (1, 2)
經由: ((3, 6), (2, 3)) 再穿越: (8, 9)
經由: ((3, 6), (2, 3)) 再穿越: (7, 8)
經由: ((3, 6), (2, 3)) 再穿越: (5, 8)
經由: ((3, 6), (2, 3)) 再穿越: (2, 5)
經由: ((3, 6), (2, 3)) 再穿越: (2, 3)
經由: ((3, 6), (2, 3)) 再穿越: (1, 2)
經由: ((8, 9), (8, 9)) 再穿越: (5, 6)
經由: ((8, 9), (8, 9)) 再穿越: (3, 6)
經由: ((8, 9), (8, 9)) 再穿越: (6, 9)
經由: ((8, 9), (8, 9)) 再穿越: (7, 8)
經由: ((8, 9), (8, 9)) 再穿越: (8, 9)
經由: ((8, 9), (8, 9)) 再穿越: (5, 8)
經由: ((8, 9), (6, 9)) 再穿越: (8, 9)
經由: ((8, 9), (6, 9)) 再穿越: (5, 6)
經由: ((8, 9), (6, 9)) 再穿越: (3, 6)
經由: ((8, 9), (6, 9)) 再穿越: (6, 9)
經由: ((8, 9), (5, 6)) 再穿越: (5, 6)
經由: ((8, 9), (5, 6)) 再穿越: (5, 8)
經由: ((8, 9), (5, 6)) 再穿越: (4, 5)
經由: ((8, 9), (5, 6)) 再穿越: (6, 9)
經由: ((8, 9), (5, 6)) 再穿越: (8, 9)
經由: ((8, 9), (5, 6)) 再穿越: (2, 5)
經由: ((8, 9), (3, 6)) 再穿越: (6, 9)
經由: ((8, 9), (3, 6)) 再穿越: (8, 9)
經由: ((8, 9), (3, 6)) 再穿越: (2, 3)
經由: ((8, 9), (3, 6)) 再穿越: (3, 6)
((8, 9), (8, 9), (7, 8))
如是走過了一番,算不算是學會了一種『方法學』
的呢??!!