Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

メビウス関数(Mobius function)

メビウス関数の定義

任意の自然数 n の約数すべてにわたって和をとったときに 0 になるような関数 f(n) があれば、数論にとって非常に有用な関数となります。1831 年、メビウスの輪で有名なドイツの数学者メビウス(August Ferdinand Möbius)がそのような条件を満たす関数 μ(n) を発表しました。

【定義D3】メビウス関数 μ(n) を以下のように定義する。
(1) n=1 のときは μ(n)=1
(2) nr 個の異なる素数の積であるときは μ(n)=(1)r
(3) n が平方因子(素数の 2 乗)をもつときは μ(n)=0

具体的に計算してみましょう。

n=1 のときは定義によって μ(1)=1
n=2 は 1 個の素数の積なので μ(2)=(1)1=1
n=3 のときも同様に μ(3)=1
n=4 のときは平方因子 22 をもつので μ(4)=0

以下同様に計算していくと、
μ(5)=1,μ(6)=μ(23)=(1)2=1,μ(7)=1,
のような値をとることがわかります。定義より明らかに素数 p について
μ(p)=1,μ(pk)=0(k=2,3,)
が成り立ちます。

メビウス関数が乗法的であることを証明しておきます。

【定理D9】メビウス関数は (a,b)=1 のとき
μ(ab)=μ(a)μ(b)を満たす乗法的関数です。

[証明] a,b を素因数分解して
a=p1a1p2a2piaib=q1b1q2b2pjbj
のように表せたとします。(a,b)=1 なので、
p1,p2,,pi,q1,q2,,qj
の中に共通する素因数はないので、ab の積をつくると
ab=p1a1p2a2piaiq1b1q2b2qibi
となります。a1,a2,,b1,b2 のなかに 2 以上の値があるときは
μ(a)μ(b)=0=μ(ab)
となります。a1=a2=b1=b2==1 のときは
μ(a)=(1)i,μ(b)=(1)j,μ(ab)=(1)i+j
となるので、
μ(ab)=μ(a)μ(b)
が成り立ちます。(証明終)

たとえば n=20 のとき、
μ(35)=μ(5)μ(7)=(1)(1)=1
のように計算できます。

メビウス関数の約数にわたる和

たとえば n=12 のとき、そのすべての約数について和をとると
d|12μ(d)=μ(1)+μ(2)+μ(3)+μ(4)+μ(6)+μ(12)=1+(1)+(1)+0+(1)2+0=0
となります。これは一般にも成り立つ定理です。

【定理D10】
d|nμ(d)={1(n=1)0(n>1)

[証明] n=1 のときは定義より明らかです。n1 のとき
n=p1a1p2a2pkak
のように素因数分解されたとすると、その約数は
d=p1x1p2x2pkak(1xiak)
で表されます。xi2 であれば μ(d)=0 なので、このようなケースを除いて、xi=0 または xi=1 についてのみ和をとると
d|nμ(d)=μ(1)+μ(p1)+μ(p2)++μ(pk)++μ(p1p2)+μ(p1p3)++μ(p1p2p3)+μ(p1p3p4)+++μ(p1p2pk)
ここでたとえば μ(p1p2)+μ(p1p3)+k 個から異なる 2 個を取り出したときの組み合わせの和となっているので、
d|nμ(d)=1+kC1(1)+kC2(1)2++kCk={1+(1)}k=0
となります。(証明終)

証明の最後のところでは 二項定理
(a+b)n=k=0nnCkankbk
を用いました。
 

μ(d)μ(n/d)の約数にわたる和

たとえば μ(10/d) の約数にわたる和を計算してみると
d|10μ(10d)=μ(101)+μ(102)+μ(105)+μ(1010)=μ(10)+μ(5)+μ(2)+μ(1)=d|10μ(d)
のようになって μ(d) の和に等しくなります。一般的にも
d|nμ(nd)=d|nμ(d)
という関係が成り立ちます。

メビウスの反転公式

次は メビウスの反転公式(Möbius inversion formula)を証明しますが、その前に準備として補題を1つ示しておきます。

【補題D1】d|ne|de|nndne

[証明] d|ne|d ならば
n=kd,d=le
とおけるので、
n=klee|d
が成り立ちます。さらに
nd=k,nd=kl
なので、ndne が成り立ちます。逆に e|nndne が成り立つとき、
ne=mnd
とおけるので、d=me すなわち e|d となります。(証明終)

ある整数論的関数 g(n) を別の関数 f(n) の約数にわたる和によって
g(n)=d|nf(d)
のように定義されるとき、逆に f(n)g(n) によってどのように表されるかを述べているのが次の定理です。

【定理D11:メビウスの反転公式】
g(n)=d|nf(d)(1)f(n)=d|nμ(nd)g(d)(2)

[証明] (1) を (2) の右辺に代入すると
d|nμ(nd)[e|df(e)]=d|n[e|dμ(nd)f(e)]
ここで先ほどの補題 D1
d|ne|de|nndne
を用いて和の変数を置き換えると
d|n[e|dμ(nd)f(e)]=e|n[(n/d)|(n/e)μ(nd)]f(e)
ここで [ ] の中は n/e=1 のときのみ 1 となり、その他の場合は 0 となります。よって n=e より
d|nμ(nd)g(d)=f(n)
となることが示されました。(証明終)

メビウス関数とオイラー関数

メビウスの反転公式
g(n)=d|nf(d)(1)f(n)=d|nμ(nd)g(d)(2)
において f(n)=φ(n) とおくと、
g(n)=d|nφ(d)=n
となるので、
φ(n)=d|nμ(nd)d
n=de とおくと

φ(n)=e|nμ(e)ne=nd|nμ(d)d

となって、メビウス関数と オイラー関数 を結びつけることができます。n=12 の場合で試してみます。
φ(12)=12d|12μ(d)d=12(μ(1)1+μ(2)2+μ(3)3+μ(4)4+μ(6)6+μ(12)12)=12(11+(1)2+(1)3+04+16+012)=4

エクセルや数学に関するコメントをお寄せください