2011年7月15日金曜日

箱玉系

n色の箱玉系の動作確認のためのpythonスクリプト

結果は、ベーテ仮説と組合わせ論p134の例になる
python soliton.py
[2, 2, 2, 1, 1, 1, 1, 2]
[1, 1, 1, 2, 2, 2, 1, 1, 2]
[1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2]

2色の例7.4については、
[1, 3, 2, 2, 1, 1, 3, 2]
[1, 1, 1, 1, 3, 2, 2, 1, 3, 2]
[1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 3, 2, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 3, 2, 2]

#!/usr/bin/python

def move(l, ball):
    while True: 
        try:
            n = l.index(ball)
            l[n] = 'done'
            m = l[n+1:]
            try:
                n2 = m.index(1)
                m[n2] = 'new'
            except ValueError:
                m.append('new')
            l[n+1:] = m
        except ValueError:
            break
    for i in range(len(l)):
        if l[i] == 'new':
            l[i] = ball
        elif l[i] == 'done':
            l[i] = 1  
#p134
l = [2,2,2,1,1,1,1,2]
print l
for i in range(5):
    move(l, 2)
    print l
#p137 例7.4
l = [1,3,2,2,1,1,3,2]
print l
for i in range(3):
    move(l, 3)
    move(l, 2)
    print l

3 件のコメント:

匿名 さんのコメント...

久々の投稿だと思ったら、なんじゃいな、これは? アホなワタスにもわかるように、もうちょっとだけでも、説明つけてちょ。

匿名 さんのコメント...

McLaneで圏論を勉強していた理論計算機の院生さんに聞いたブログ。

The n-category cafe
http://golem.ph.utexas.edu/category/

aka さんのコメント...

>もうちょっとだけでも、説明つけてちょ。
追記しました。
ソリトンを線形化する、と言う話です。