高速ゼータ変換/高速メビウス変換 - naoya_t@hatenablogで誤りを指摘されたので、反省の意味を込めて自分でちゃんと考えた。
メビウスの反転公式 - Wikipediaを元にしているけど、よくわかってないので間違ってたら教えて
追記
全部隣接代数 (順序理論) - Wikipediaに書いてました。ちゃんちゃん
追記終わり
○ゼータ変換・メビウス変換とは
を可換順序群、を可換環とする。
このとき、への作用素を、 により定める。
これをゼータ変換という。
もしとなるが存在すれば、ゼータ変換には逆変換が存在し
となる。これをメビウス変換という。
ただしである。
式の形を見れば分かる通り、これらは畳み込み積の計算であり、である。
(の場合などをイメージしてみよ)
は畳み込みにおける単位元であり、であるから、は定数関数1の畳み込みにおける逆元である。
このことからにより、逆変換ができることが確かめられる。
は?
○競プロでよく見るやつ
・高速ゼータ変換
集合Xがあり、べき集合上の関数f:P(X)→Rがある。
を高速に求める
・高速メビウス変換
集合Xがあり、べき集合上の関数f:P(X)→Rがある。
を高速に求める
「普通にやるとO(3^N)だけどO(N*2^N)でできるよ~」というやつ。
これは、べき集合P(X)を自然にへ持っていたと考えているようなもの(ほんとに?)
(もう少し仮定を弱めてGは群でなくてもよいのでは??)
※この例でいうとのように、ある種の"差"が計算できる必要があると思っていたので、fの定義域を群にしたのだけど、wikipediaを見ると、区間を引数にとる関数だと思えばよかったらしい。なるほど
○メビウスの反転公式
正整数上の関数f,gが
を満たすとする。このとき
が成り立つ。ただしはメビウス関数
これはに自然な順序を定めたものと言える
〇メビウス変換と包除原理
Uを集合とし、N個の集合がある。
X={1,...,N}とし、を
により定める。
とおくと、包除原理から
となる。
よってあらかじめを|U|ではなく=0と定めておけば、となることが確かめられる。