資源簡介
python在群論上的應用,用python計算二階魔方的上帝之數,求每一步還原情況的算法。
代碼片段和文件信息
import?time?
def?mul(ab):
????‘‘‘映射復合‘‘‘
????n?=?len(a)
????c?=?[a[b[i]]?for?i?in?range(n)]
????return?tuple(c)
def?inv(a):
????‘‘‘映射取逆‘‘‘
????b?=?list(a)
????for?ij?in?enumerate(a):
????????b[j]=i
????return??tuple(b)
#數據初始化
t0?=?time.time()
n?=?21
e?=?[i?for?i?in?range(n)]
e?=?tuple(e)
a1?=?(13142345601129101118171516871920)
a2?=?(01236710118914151213451618192017)
a3?=?(03419185678910121613141517121120)
S?=?(a1a2a3inv(a1)inv(a2)inv(a3)mul(a1a1)mul(a2a2)mul(a3a3))
Sum?=?1?#?記錄總數
solve?=?{hash(e)}?#記錄已解情況
X?=?[[e][]]?#分別存儲k步可還原的情形
X_h?=?[[hash(e)][]]?#?對應哈希值
Y_h?=?[[hash(e)][]]?#存儲該情形前一狀態,用于逆運算
while?True?
- 上一篇:樹莓派http協議onenet平臺案例
- 下一篇:Python項目實戰
評論
共有 條評論