ガウス記号と整数の個数(floor function and counting integers)とは、ガウス記号 $[x]$($x$ 以下の最大の整数、床関数)を使って、条件をみたす整数の個数を数える方法である。実数 $a\le b$ について $a<m\le b$ をみたす整数 $m$ は $[b]-[a]$ 個あり、正の実数 $x$ 以下の正の整数のうち正の整数 $k$ の倍数は $[x/k]$ 個ある。$xy\le n$ をみたす正の整数の組を縦の列ごとと積の値ごとに 2 通りに数えると、$\sum_{k=1}^n[n/k]$ は $1$ から $n$ までの約数の個数の和に等しい。双曲線 $xy=n$ の対称性から、この和は $q=[\sqrt n]$ として $2\sum_{k=1}^q[n/k]-q^2$ とも書け、その大きさはおよそ $n\log n$ である。
前提知識: 床関数, 約数, 整数の割り算と互除法
「$1$ から $100$ までに $3$ の倍数はいくつあるか」は、$100\mathbin{÷}3=33.3\cdots$ の整数部分 $33$ が答えである。この「整数部分」を表す記号がガウス記号 $[x]$ である。この記事では、ガウス記号を使って「条件をみたす整数の個数」を数える方法をまとめる。
$1$ から $100$ までの整数のうち、$3$ の倍数は $3,6,\dots,99$ で、$99=3\cdot33$ だから $33$ 個である。$\dfrac{100}3=33.3\cdots$ の整数部分が $33$ である。同じく $5$ の倍数は $\dfrac{100}5=20$ から $20$ 個、$15$ の倍数は $\dfrac{100}{15}=6.6\cdots$ から $6$ 個である。
したがって、$3$ でも $5$ でも割り切れない数は
$$
100-33-20+6=53
$$
個である($3$ の倍数と $5$ の倍数を引くと、$15$ の倍数を 2 回引いてしまうので、1 回足し戻す)。
$1$ から $6$ までの整数の約数の個数を足す。$1$ の約数は $1$ 個、$2$ は $2$ 個、$3$ は $2$ 個、$4$ は $3$ 個、$5$ は $2$ 個、$6$ は $4$ 個なので、合計は $1+2+2+3+2+4=14$ である。
一方、「$1$ から $6$ までの $k$ の倍数の個数」を $k=1,\dots,6$ について足すと、$6+3+2+1+1+1=14$ で、同じ数になる。これは偶然ではない(thm-fnc-divisor-sum)。
この記事で答える問いは次の 4 つである。
| 高校の計算 | この記事の言葉 | 大学の言葉 |
|---|---|---|
| $100\mathbin{÷}3$ の整数部分 | ガウス記号 $[x]$(def-fnc-floor) | 床関数 $\lfloor x\rfloor$ |
| $n$ 以下の $k$ の倍数の個数 | $\left[\dfrac nk\right]$(thm-fnc-multiples) | 格子点の数え上げ |
| 約数の個数の和 | 双曲線の下の格子点(thm-fnc-divisor-sum) | 約数関数の平均、Dirichlet の約数問題 |
| 双曲線を対称に分ける | prop-fnc-hyperbola | Dirichlet の双曲線法 |
実数 $x$ に対し、$n\le x< n+1$ をみたす整数 $n$ がただ 1 つある。この $n$ を $[x]$ と書き、$x$ の ガウス記号 という。$[x]$ は「$x$ 以下の最大の整数」である。大学では同じものを $\lfloor x\rfloor$ と書き、床関数 とよぶ。
そのような $n$ がただ 1 つあることは、実数の Archimedes の性質から従う(本記事では証明しない。実数とは何か:無理数の証明 の補題「Archimedes の性質」とその直後の段落、実数 の命題「整数部分」を参照)。「$x$ 以下の最大の整数」と言いかえられるのは、$n\le x$ であり、しかも $n+1$ 以上の整数は $x$ より大きいからである。
小数の各位の数字もガウス記号で書ける。$0\le x<1$ の小数第 $k$ 位の数字は $[10^kx]-10[10^{k-1}x]$ であり、これを使って分数の小数展開がくり返す理由を調べるのが 循環小数と分数 である。
y=[x] のグラフ。黒丸は含み、白丸は含まない。グラフは直線 y=x と y=x−1 の間にある
図 1 のように、$y=[x]$ のグラフは階段になる。各段の左端(整数のところ)は段に含まれ、右端は含まれない。
$x,y$ を実数、$m$ を整数とする。
方針:どの主張も、def-fnc-floor の不等式 $[x]\le x<[x]+1$ を変形し、「その不等式をみたす整数はただ 1 つ」を使う。
段 1(1 の証明)。定義により $[x]\le x<[x]+1$ である。右の不等式から $1$ を移項すると $x-1<[x]$ である。
段 2(2 の証明)。$[x]\le x<[x]+1$ の各辺に $m$ を足すと $[x]+m\le x+m<([x]+m)+1$ である。$[x]+m$ は整数なので、$x+m$ についての定義の不等式をみたす整数はこれであり、ただ 1 つなので $[x+m]=[x]+m$ である。
段 3(3 の証明)。$m\le[x]$ なら、$[x]\le x$ から $m\le x$ である。逆に $m\le x$ とする。もし $m>[x]$ なら、整数どうしなので $m\ge[x]+1>x$ となり、$m\le x$ に反する。よって $m\le[x]$ である。
段 4(4 の証明)。$[x]\le x$、$[y]\le y$ を足すと、整数 $[x]+[y]$ は $x+y$ 以下である。段 3 により $[x]+[y]\le[x+y]$ である。また $x<[x]+1$、$y<[y]+1$ を足すと $x+y<[x]+[y]+2$ である。$[x+y]\le x+y$ なので $[x+y]<[x]+[y]+2$ で、整数どうしなので $[x+y]\le[x]+[y]+1$ である。$\square$
性質 2 で足す数 $m$ が整数でないと崩れる。$[0.5+0.5]=1$ だが $[0.5]+[0.5]=0$ である。また $[2\cdot0.5]=1$ だが $2[0.5]=0$ で、$[2x]=2[x]$ も成り立たない。性質 4 が言えるのは、差が $0$ か $1$ であることまでである。
$a\le b$ を実数とする。$a< m\le b$ をみたす整数 $m$ の個数は $[b]-[a]$ である。
方針:「$a< m$」と「$m\le b$」を、それぞれ $[a]$、$[b]$ を使った整数どうしの不等式に直す。
段 1(右の条件)。prop-fnc-basic の 3 により、整数 $m$ について $m\le b$ は $m\le[b]$ と同値である。
段 2(左の条件)。整数 $m$ について、$a< m$ は $m\ge[a]+1$ と同値である。実際、$a< m$ なら、$m\le a$ ではないので、prop-fnc-basic の 3 により $m\le[a]$ でもなく、整数どうしなので $m\ge[a]+1$ である。逆に $m\ge[a]+1$ なら、$[a]+1>a$(def-fnc-floor)なので $m>a$ である。
段 3(数える)。段 1・2 により、条件をみたす $m$ は $[a]+1,[a]+2,\dots,[b]$ である。その個数は $[b]-([a]+1)+1=[b]-[a]$ である($[a]\le[b]$ なので $0$ 以上。$[b]=[a]$ なら $0$ 個)。$\square$
$x$ を正の実数、$k$ を正の整数とする。$1$ 以上 $x$ 以下の整数のうち、$k$ の倍数の個数は $\left[\dfrac xk\right]$ である。
方針:$k$ の正の倍数を $jk$($j=1,2,\dots$)と番号づけ、条件を $j$ の範囲に直す。
段 1。$1$ 以上 $x$ 以下の $k$ の倍数は、正の整数 $j$ を使って $jk$ と書け、この $j$ はただ 1 つに決まる。したがって、数えるものは「$jk\le x$ をみたす正の整数 $j$」の個数である。
段 2。$k>0$ なので、$jk\le x$ は $j\le\dfrac xk$ と同値であり、prop-fnc-basic の 3 により $j\le\left[\dfrac xk\right]$ と同値である。
段 3。条件をみたす $j$ は $1,2,\dots,\left[\dfrac xk\right]$ なので、個数は $\left[\dfrac xk\right]$ である($\dfrac xk<1$ なら $0$ 個)。$\square$
thm-fnc-multiples は倍数が「いくつあるか」を数える。1 つの数が $k$ の倍数「かどうか」を、割り算をせずに数字から判定する方法は 倍数の判定法 で扱う。
$100$ 以下の $3$ の倍数の個数を $\dfrac{100}3=33.3\cdots$ の四捨五入で求めると $33$ で正しいが、$100$ 以下の $6$ の倍数を $\dfrac{100}6=16.6\cdots$ の四捨五入で求めると $17$ となり、誤りである(正しくは $16$ 個。$6\cdot17=102>100$)。thm-fnc-multiples の証明の段 2 で使ったのは「$j\le\dfrac xk$ となる最大の整数」なので、切り捨て $[\ ]$ でなければならない。
$x$ 座標と $y$ 座標がともに整数である点を 格子点 という。ex-fnc-start-divisors の一致は、双曲線 $xy=n$ の下にある格子点を 2 通りに数えることで説明できる。
正の整数 $j$ の正の約数の個数を $d(j)$ と書く。正の整数 $n$ について
$$
\sum_{k=1}^n\left[\frac nk\right]=\sum_{j=1}^nd(j)
$$
であり、どちらも $xy\le n$ をみたす正の整数の組 $(x,y)$ の個数(領域 $x>0$、$y>0$、$xy\le n$ にある格子点の個数)に等しい。
方針:$xy\le n$ をみたす正の整数の組 $(x,y)$ の集合 $D$ の要素の個数を、2 通りに数える。
段 1(縦の列ごとに数える)。$x=k$($1\le k\le n$)を固定すると、$ky\le n$ は $y\le\dfrac nk$ と同値である。prop-fnc-basic の 3 により、それは $y=1,2,\dots,\left[\dfrac nk\right]$ の $\left[\dfrac nk\right]$ 個である。$x>n$ では $xy\ge x>n$ なので点はない。よって $D$ の要素の個数は $\displaystyle\sum_{k=1}^n\left[\frac nk\right]$ である。
段 2(積の値ごとに数える)。$D$ の点 $(x,y)$ の積 $j=xy$ は $1$ 以上 $n$ 以下の整数である。$j$ を固定すると、$xy=j$ をみたす正の整数の組 $(x,y)$ は、$x$ を $j$ の正の約数から選べば $y=\dfrac jx$ と決まるので、ちょうど $d(j)$ 個ある。よって $D$ の要素の個数は $\displaystyle\sum_{j=1}^nd(j)$ である。
段 3。段 1 と段 2 は同じ集合 $D$ を数えているので、2 つの和は等しい。$\square$
段 1 の数え方は、「$1$ 以上 $n$ 以下の $k$ の倍数の個数」を $k$ について足すことと同じである(thm-fnc-multiples)。列 $x=k$ の点 $(k,y)$ が、倍数 $ky$ に対応している。
xy ≤ 12 をみたす格子点(35 個)。左は縦の列ごとに数えたもので、列 x=k には [12/k] 個の点がある。右は x ≤ 3 の部分と y ≤ 3 の部分に分けたもので、両方に入る 3×3 の正方形の 9 個を 1 回引く
thm-fnc-divisor-sum の左辺は $n$ 項の和である。双曲線 $xy=n$ が直線 $y=x$ について対称であることを使うと、約 $\sqrt n$ 項の和で済む。
正の整数 $n$ について $q=[\sqrt n]$ とおくと
$$
\sum_{k=1}^n\left[\frac nk\right]=2\sum_{k=1}^q\left[\frac nk\right]-q^2
$$
である。
方針:thm-fnc-divisor-sum の集合 $D$ を、$x\le q$ の部分 $A$ と $y\le q$ の部分 $B$ に分け、要素の個数を「$A$ の個数 $+$ $B$ の個数 $-$ 重なりの個数」で数える(図 2 の右)。
段 1($D=A\cup B$)。$D$ の点 $(x,y)$ で $x\ge q+1$ かつ $y\ge q+1$ となるものはない。実際、$q+1>\sqrt n$(prop-fnc-basic の 1 で $x=\sqrt n$ とする)なので、そうなら $xy\ge(q+1)^2>n$ となり、$xy\le n$ に反する。よって $D$ のどの点も $x\le q$ か $y\le q$ をみたし、$A$ か $B$ に入る。
段 2($A$ と $B$ の個数)。$A$ の点を列 $x=k$($1\le k\le q$)ごとに数えると、thm-fnc-divisor-sum の証明の段 1 と同じく $\displaystyle\sum_{k=1}^q\left[\frac nk\right]$ 個である。$B$ は $A$ の $x$ と $y$ を入れかえたもので(条件 $xy\le n$ は入れかえても変わらない)、個数は同じである。
段 3(重なりの個数)。$A\cap B$ は $x\le q$、$y\le q$ をみたす $D$ の点である。$x\le q$、$y\le q$ なら $xy\le q^2\le n$($q\le\sqrt n$)なので、条件 $xy\le n$ は自動的にみたされる。よって $A\cap B$ は $1\le x\le q$、$1\le y\le q$ の格子点全体で、$q^2$ 個である。
段 4。$A$ と $B$ を足すと重なりを 2 回数えるので、$D$ の個数は
$$
\sum_{k=1}^q\left[\frac nk\right]+\sum_{k=1}^q\left[\frac nk\right]-q^2
$$
である。thm-fnc-divisor-sum により左辺はこれに等しい。$\square$
thm-fnc-divisor-sum を使うと、約数の個数の平均がおよそ $\log n$ であることが分かる。計算は次のボックスで行う。
$H_n=1+\dfrac12+\cdots+\dfrac1n$ とおく。prop-fnc-basic の 1 により $\dfrac nk-1<\left[\dfrac nk\right]\le\dfrac nk$ なので、$k=1,\dots,n$ について足し、thm-fnc-divisor-sum を使うと
$$
nH_n-n<\sum_{j=1}^nd(j)\le nH_n
$$
である。$H_n$ は、$\dfrac1x$ のグラフの下の面積と階段の面積を比べることで
$$
\log(n+1)< H_n\le1+\log n
$$
をみたす(調和級数 の命題「積分による上下の評価」。本記事では証明しない。面積で比べる考え方は 区分求積と積分の定義 と同じである)。2 つをあわせて $n$ で割ると、$1$ から $n$ までの整数の約数の個数の平均について
$$
\log(n+1)-1<\frac1n\sum_{j=1}^nd(j)\le1+\log n
$$
となり、平均は $\log n$ との差が $1$ 程度の範囲に収まる。これは 約数 の命題「約数の個数の平均」と同じ評価である。
prop-fnc-hyperbola の形から出発して同じ評価を $k\le\sqrt n$ の部分だけで行うと、誤差がずっと小さくなり
$$
\sum_{j=1}^nd(j)=n\log n+(2\gamma-1)n+(\text{大きさが}\ \sqrt n\ \text{の定数倍以下の誤差})
$$
となる($\gamma=0.5772\cdots$ は Euler定数)。この方法を Dirichlet の双曲線法といい、証明は Cri24 §20.3 にある。たとえば $n=10^6$ では左辺は $13970034$、$n\log n+(2\gamma-1)n$ は約 $13969942$ で、差は約 $92$ である($\sqrt n=1000$ より小さい)。誤差の大きさを $\sqrt n$ よりどこまで小さく抑えられるかを Dirichletの約数問題 という。誤差は $n^{1/3}$ の定数倍で抑えられ、一方 $n^{1/4}$ の定数倍では抑えられないことが知られている(本記事では証明しない)。最良の指数はまだ分かっていない。
すべての正の整数 $n$ について、次の和を求めよ。
$$
\sum_{k=0}^\infty\left[\frac{n+2^k}{2^{k+1}}\right]=\left[\frac{n+1}2\right]+\left[\frac{n+2}4\right]+\left[\frac{n+4}8\right]+\cdots
$$
ここで $[x]$ は $x$ 以下の最大の整数を表す。
出典:国際数学オリンピック(1968 年)第 6 問 Oly68。筆者による和訳。答は $n$ である。
方針:第 $k$ 項が「$1$ 以上 $n$ 以下の整数のうち、素因数 $2$ をちょうど $k$ 個もつものの個数」であることを示し、$k$ についての和が $1$ から $n$ までの整数をちょうど 1 回ずつ数えることを使う。
段 1(和は実質有限)。$2^k>n$ なら $0<\dfrac{n+2^k}{2^{k+1}}<\dfrac{2^k+2^k}{2^{k+1}}=1$ なので、第 $k$ 項は $0$ である。よって和は有限個の項の和である。
段 2(第 $k$ 項の意味)。$1$ 以上 $n$ 以下の整数で、素因数 $2$ をちょうど $k$ 個もつもの($2^k$ で割り切れて $2^{k+1}$ で割り切れないもの)は、正の整数 $j$ を使って $2^k(2j-1)$ とただ 1 通りに書ける。条件 $2^k(2j-1)\le n$ を変形すると
$$
2j-1\le\frac n{2^k}\iff j\le\frac{1}{2}\left(\frac n{2^k}+1\right)=\frac{n+2^k}{2^{k+1}}
$$
である。thm-fnc-multiples の証明と同じく、このような正の整数 $j$ は $\left[\dfrac{n+2^k}{2^{k+1}}\right]$ 個ある。これが第 $k$ 項である。
段 3(足す)。$1$ 以上 $n$ 以下の整数 $m$ は、素因数 $2$ をちょうど何個もつかによって、$k=0,1,2,\dots$ のどれか 1 つの組に入る(素因数分解の一意性)。段 2 により第 $k$ 項は $k$ 番目の組の個数なので、全部の項の和は $1$ 以上 $n$ 以下の整数の個数 $n$ に等しい。$\square$
$n=10$ では、項は $\left[\dfrac{11}2\right]=5$、$\left[\dfrac{12}4\right]=3$、$\left[\dfrac{14}8\right]=1$、$\left[\dfrac{18}{16}\right]=1$、$\left[\dfrac{26}{32}\right]=0$、… で、和は $5+3+1+1=10$ である。組に分けると、奇数 $1,3,5,7,9$($5$ 個)、$2$ をちょうど $1$ 個もつ $2,6,10$($3$ 個)、ちょうど $2$ 個の $4$($1$ 個)、ちょうど $3$ 個の $8$($1$ 個)である。
整数 $m$ に含まれる素因数 $2$ の個数を $v_2(m)$ と書き、$2$ 進付値という(p進付値)。段 2・3 は、$\{1,\dots,n\}$ を $v_2$ の値で分けて数えたことにほかならない。
同じ第 $k$ 項は、「$2^k$ の倍数の個数から $2^{k+1}$ の倍数の個数を引いたもの」とも数えられるので、
$$
\left[\frac{n+2^k}{2^{k+1}}\right]=\left[\frac n{2^k}\right]-\left[\frac n{2^{k+1}}\right]
$$
が成り立つ。$x=\dfrac n{2^{k+1}}$ とおくと、これは $\left[x+\dfrac12\right]=[2x]-[x]$ という恒等式の特別な場合である(Hermiteの恒等式 の $2$ 項の場合。証明は 床関数 の記事にある)。この形で和をとると、$\left[\dfrac n1\right]-\left[\dfrac n2\right]+\left[\dfrac n2\right]-\left[\dfrac n4\right]+\cdots$ と隣どうしが打ち消し合い、$\left[\dfrac n1\right]=n$ だけが残る。「素因数 $p$ をちょうど $k$ 個もつ数」の数え方は、$n!$ に含まれる素因数の個数を与える Legendre の公式(階乗に含まれる素因数の個数)と同じ仕組みである。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する