有限数列上の変換について [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
このスレッドでは、有限数列から有限数列への変換器について考えよう。
【議題1】どのような変換器が存在し、数学的にどのように表記できるか?
【議題2】変換器はどのようにいくつかの変換器に分解可能か?
【議題3】変換器Cに対する逆変換器C^(-1)の存在可能性について。 【定義1】a_1, a_2, ..., a_nという有限数列を(a_i)_{i=1}^nと表す。
【定義2】a_*(i)=a_iとする。 【定義3】空数列を()で表す。すなわち()=(a_i)_{i=1}^0である。 【定義4】数列Xのサイズ、すなわち項の数を#(X)と表す。k≦hのとき、
#((a_i)_{i=k}^h)=h-k+1
となる。 【定義5】数列X=(f(i))_{i=0}^nについて、関数fを数列Xの特性関数と呼ぶことにする。 条件分岐のための記号を導入する。これは単に場合分けを表すために用いる。
【定義5】「x ||_A y」は、条件Aが満たされるときxに等しく、その他のときyに等しい。
「||_A」を「条件Aの壁」と呼ぶことにする。
条件の壁は左結合である。すなわち x ||_A y ||_B z = (x ||_A y) ||_B zである。 >>6の発言を撤回する。
【定義6】「x ||_A y」は、条件Aが満たされるときyに等しく、その他のときxに等しい。
「||_A」を「条件Aの壁」と呼ぶことにする。
条件の壁は左結合である。すなわち x ||_A y ||_B z = (x ||_A y) ||_B zである。 【定義7】数列Xの第k項をX[k-1]と表す。
【定義8】数列XからX[h]を取り除いた数列をERASE(X, h)と表す。
【定義9】数列XからX[h]からX[k]までを取り除いた数列をERASE(X, h, k)と表す。 【定義10】数列Xの中のX[i]の前に項xを挿入した数列をINSERT(X, i, x)と表す。
【定義11】数列Xの中のX[i]の前に数列Yを挿入した数列をINSERT(X, i, Y)と表す。 【定義12】数列Xの最後に項xを追加した数列をAPPEND(X, x)と表す。
【定義13】数列Xの最後に数列Yの項を順番に挿入した数列をAPPEND(X, Y)と表す。 【定義14】数列Xについて、X[h]以降の項を並べた数列をSUB(X, h)と表す。
【定義15】数列Xについて、X[h]以降のm個の項を並べた数列をSUB(X, h, m)と表す。 【定義17】数列Xについて項X[h]を項yで置き換えた数列をREPLACE(X, h, y)と表す。
【定義18】数列XについてX[h]以降のm個の項を数列Yで置き換えた数列を
REPLACE(X, h, m, Y)と表す。 【定義19】#(X)=nである数列Xと、自然数m(≦n)について、
Xの先頭からm個の項を順番に取り出したサイズmの数列を
SHRINK(X, m)と表す。 (f(i))_{i=h}^kという形の数列について、
これは(f(i+h))_{i=0}^{k-h}という形に変形できる。
よって(f(i))_{i=0}^nのような、添字がゼロベースの数列を考えるだけで充分である。 明らかに
ERASE(X, h)=ERASE(X, h, h)
である。
明らかに
ERASE(X, 0, #(X)-1)=()
である。 明らかに
APPEND(X, y)=INSERT(X, #(X), y)
であり、
APPEND(X, Y)=INSERT(X, #(X), Y)
である。 明らかに
APPEND(X, APPEND(Y, Z))=APPEND(APPEND(X, Y), Z)
である。 ERASE((f(i))_{i=0}^n, h)=(f(i) ||_{i≧h} f(i+1))_{i=0}^{n-1}
である。ここに「||_{i≧h}」は条件i≧hの壁である。 明らかに
APPEND(X, Y)=(X[i] ||_{#(X)≦i} Y[i-#(X)])_{i=0}^{#(X)+#(Y)-1}
である。 明らかに
INSERT(X, 0, Y)=APPEND(Y, X)
である。 明らかに
INSERT(INSERT(X, h, Y), h, Z)=INSERT(X, h, APPEND(Z, Y))
である。 【定義20】数列X中のX[h]からm個の項を取り除いた数列をERASE2(X, h, m)と表す。
明らかにERASE(X, h, k)=ERASE2(X, h, k-h+1)である。 【定義21】数列Xの先頭からm個の項を並べた数列をFRONT(X, m)と表す。
【定義22】数列Xの先頭の項をFRONT(X)と表す。
【定義23】数列Xの最後のm個の項を並べた数列をBACK(X, m)と表す。
【定義24】数列Xの最後の項をBACK(X)と表す。 ここまでの関数の定義について、定義域と値域を確認しよう。
【定義25】すべての数列の全体集合をSeqと表す。また、サイズnの数列の全体集合をSeq(n)と表す。
【定義26】x以上y未満の整数の集合をI(x,y)と表す。 N={0,1,2,3,...}とする。
#(X)のXはSeqに属する。
X[h]のhはI(0,#(X))に属する。
ERASE(X,h)のhはI(0,#(X))に属し、Xはサイズ1以上の数列である。
ERASE2(X,h,m)のhはI(0,#(X)+1)に属し、mはI(0,#(X)-h+1)に属し、Xはサイズm以上の数列である。
INSERT(X,h,Y)のhはI(0,#(X)+1)に属し、X,YはSeqに属する。 APPEND(X,Y)のX,Yは数列であり、これ以外の制限はない。
これは2通りの見方がある。Xの最後にYを追加するか、Yの先頭にXを挿入するか。
Z=APPEND(*,Y)の値域はSUB(Z,#(Z)-#(Y),#(Y))=YとするZの集合である。
Z=APPEND(X,*)の値域はSUB(Z,0,#(X))=XとするZの集合である。 逆変換器を考えるときで、機械が正常に動作しているか確認する必要があるとき、
元の変換器の値域を考慮する必要がある。 変換器Z=APPEND(X,Y)のXに関する逆変換器は、X=FRONT(Z,#(Z)-#(Y))となる。
ここにBACK(Z,#(Y))=Yでなければならない。 変換器Z=APPEND(X,Y)のYに関する逆変換器は、Y=BACK(Z,#(Z)-#(X))となる。
ここにFRONT(Z,#(X))=Xでなければならない。 アホみたいに簡単なことをバカみたいに複雑に表現する数学的衒学
どこかで見たことあると思ったら…
多重集合と負の存在 [転載禁止](c)2ch.net
http://wc2014.2ch.net/test/read.cgi/math/1418480755/ 変換器Z=ERASE(X,h)のXに関する逆変換器はX=INSERT(Z,h,X[h])である。
ここに0≦h<#(X)かつ#(X)-1=#(Z)≧0でなければならない。 変換器Z=INSERT(X,h,m,Y)のXに関する逆変換器はX=ERASE2(Z,h,m)である。
ここに0≦h≦h+m≦#(Z)=#(X)+#(Y)でなければならない。また、SUB(Z,h,m)=Yである。 一般に関数f:X→Y、g:Y→Zについて、それぞれの逆関数f^{-1},g^{-1}が
存在すれば、y=g(f(x))の逆関数はx=f^{-1}(g^{-1}(y))である。
このことを確認したい。 ■ このスレッドは過去ログ倉庫に格納されています