床関数

同義語:floor functionガウス記号

概要

床関数(floor function)とは、実数 $x$ に $x$ 以下の最大の整数 $\lfloor x\rfloor$ を対応させる関数である。$\lfloor2.7\rfloor=2$、$\lfloor-2.7\rfloor=-3$ のように、負の数では $0$ の向きではなく小さいほうへ切り捨てる。日本ではガウス記号 $[x]$ とも書くが、$[x]$ は文献により $0$ の向きへの切り捨てや四捨五入の意味にも使われる。正の整数 $a,b$ について $\lfloor a/b\rfloor$ は割り算の商であり、$1$ から $a$ までの $b$ の倍数の個数でもあるので、階乗の素因数の指数や約数の個数の和などの数え上げに現れる。整数を足すことは床の外に出せるが、一般の実数の和や積は保たれない。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: 実数, 整数

$2.7$ 以下の整数のうち最大のものは $2$ であり、これを $\lfloor2.7\rfloor=2$ と書く。$-2.7$ 以下の整数のうち最大のものは $-3$ なので $\lfloor-2.7\rfloor=-3$ である。「小数点以下を切り捨てる」と言っても、負の数では $0$ に近づく向き($-2$)ではなく、数直線の左向き(小さいほう)に切り捨てる点に注意する。この関数 $x\mapsto\lfloor x\rfloor$ が 床関数 である。床関数は数え上げに便利である。$1$ から $100$ までの $7$ の倍数は $7,14,\dots,98$ の $\lfloor100/7\rfloor=14$ 個であり、$100!=1\cdot2\cdots100$ の末尾に並ぶ $0$ の個数は、$5$ の倍数の個数 $\lfloor100/5\rfloor=20$ と $25$ の倍数の個数 $\lfloor100/25\rfloor=4$ を足した $24$ 個である(ex-floor-factorial-zeros)。
床関数は、割り算の商(除法の原理)、倍数の個数、階乗の素因数分解、格子点の個数など、整数と実数のあいだを行き来する議論のいたるところに現れる。本記事では床関数と、対になる天井関数・小数部分を定義し、その計算規則、入れ子の床関数、倍数の個数、Hermite の恒等式、約数の個数の和との関係を証明する。日本の教科書で使われる「ガウス記号」$[x]$ との関係も述べる(rem-floor-gauss)。

定義

任意の実数 $x$ に対して $m\le x< m+1$ を満たす整数 $m$ がただ 1 つ存在する(実数 の記事の命題「整数部分」。証明は Archimedes 性による)。

床関数・天井関数・小数部分

実数 $x$ に対し、$x$ 以下の最大の整数、すなわち
$$ \lfloor x\rfloor\le x<\lfloor x\rfloor+1 $$
を満たすただ 1 つの整数を $\lfloor x\rfloor$ と書き、$x$ の 床(floor)という。写像 $\mathbb{R}\to\mathbb{Z}$、$x\mapsto\lfloor x\rfloor$ を 床関数(floor function)という。同様に、$x$ 以上の最小の整数、すなわち $\lceil x\rceil-1< x\le\lceil x\rceil$ を満たすただ 1 つの整数を $\lceil x\rceil$ と書き、$x$ の 天井(ceiling)、$x\mapsto\lceil x\rceil$ を 天井関数(ceiling function)という。$\{x\}:=x-\lfloor x\rfloor$ を $x$ の 小数部分(fractional part)という。

定義から $0\le\{x\}<1$ であり、$x=\lfloor x\rfloor+\{x\}$ と「整数部分」と「小数部分」に分かれる。$\lceil x\rceil$ の存在と一意性は、$-x$ に床関数の性質を使って $\lceil x\rceil=-\lfloor-x\rfloor$ と示される(prop-floor-basic の 4)。たとえば
$$ \lfloor3\rfloor=\lceil3\rceil=3,\quad \lfloor\pi\rfloor=3,\ \lceil\pi\rceil=4,\quad \lfloor-\pi\rfloor=-4,\ \lceil-\pi\rceil=-3,\quad \{-2.7\}=-2.7-(-3)=0.3 $$
である($\pi=3.14\ldots$ は円周率)。

ガウス記号と、似た記号の流儀

日本の高校数学では、$x$ 以下の最大の整数を $[x]$ と書いて ガウス記号 と呼ぶことが多い。これは $\lfloor x\rfloor$ と同じものである。古い整数論の文献もこの記号を使う。たとえば Mos11 は $[x]$ を整数部分(p. 59 の $[n!e]$)、$(x)$ を小数部分(p. 41)の意味に使っている。ただし $[x]$ は文献によって別の意味でも使われるので注意が必要である。

  1. 計算機の分野などでは「整数部分」を $0$ の向きへの切り捨て $\operatorname{trunc}(x)$ の意味で使うことがあり、$\operatorname{trunc}(-2.7)=-2$ だが $\lfloor-2.7\rfloor=-3$ である。$x\ge0$ では 2 つは一致し、$x<0$ で $x$ が整数でないときだけ $1$ ずれる。
  2. 最も近い整数(四捨五入)を $[x]$ と書く文献もある。$0.5$ を切り上げる四捨五入は床関数で $\lfloor x+\tfrac12\rfloor$ と書ける($\lfloor2.5+0.5\rfloor=3$、$\lfloor-2.5+0.5\rfloor=-2$)。
  3. 小数部分の記号 $\{x\}$ は集合の記号と紛れやすく、Mos11 の問題 63(p. 78)では $\{x\}$ が $x$ に最も近い整数を表している。
    記号 $\lfloor x\rfloor$、$\lceil x\rceil$ は、上下の区別と負の数での扱いがはっきりするため、現在の標準になっている。本記事では $[x]$ を使わない。

直感

床関数のグラフは階段である。$n\le x< n+1$ の区間では値 $n$ の水平な線分で、$x$ が整数 $n+1$ に達した瞬間に $1$ だけ跳び上がる。各段の左端は値に含まれ、右端は含まれない。$\lfloor x\rfloor$ は「$x$ に達するまでに数直線上で通過した整数の番号」、天井 $\lceil x\rceil$ は「$x$ から見て次にある(または $x$ 自身の)整数」と考えるとよい。小数部分 $\{x\}$ は周期 $1$ のノコギリ波であり、$x$ を $1$ 周の長さ $1$ の円周に巻き付けたときの位置を表す。
正の整数 $a,b$ について、$\lfloor a/b\rfloor$ は $a$ を $b$ で割った商であり、$a-b\lfloor a/b\rfloor$ は余りである(除法の原理 の記事の命題「床関数による商」)。また $\lfloor a/b\rfloor$ は $1$ から $a$ までの $b$ の倍数の個数でもある(prop-floor-multiples)。「割り算の商」と「倍数の個数」が同じ数であることが、床関数を数え上げの道具にしている。

例と反例

100 の階乗の末尾の 0

$100!$ を $10$ 進法で書いたときの末尾の $0$ の個数は、$100!$ を割り切る $10$ の冪の最大の指数、すなわち $2$ の指数 $v_2(100!)$ と $5$ の指数 $v_5(100!)$ の小さいほうである。階乗 の記事の定理「Legendre の公式」により
$$ v_5(100!)=\Bigl\lfloor\frac{100}{5}\Bigr\rfloor+\Bigl\lfloor\frac{100}{25}\Bigr\rfloor+\Bigl\lfloor\frac{100}{125}\Bigr\rfloor=20+4+0=24, $$
$v_2(100!)=50+25+12+6+3+1=97$ なので、末尾の $0$ は $24$ 個である。$\lfloor100/5\rfloor=20$ は $5$ の倍数の個数、$\lfloor100/25\rfloor=4$ は $5$ を 2 個含む数 $25,50,75,100$ の個数で、これらは $5$ を「もう 1 個」ずつ余分に含む。

反例:床関数は掛け算も足し算も保たない

$x=y=1.5$ では $\lfloor xy\rfloor=\lfloor2.25\rfloor=2$ だが $\lfloor x\rfloor\lfloor y\rfloor=1$ である。$x=y=0.5$ では $\lfloor x+y\rfloor=1$ だが $\lfloor x\rfloor+\lfloor y\rfloor=0$ である。整数 $n$ を足すことについては $\lfloor x+n\rfloor=\lfloor x\rfloor+n$ が成り立つ(prop-floor-basic の 1)が、これらの例は「足すもの・掛けるものが整数である」という仮定を破っており、破れるのは「すべての実数 $x,y$ について $\lfloor x+y\rfloor=\lfloor x\rfloor+\lfloor y\rfloor$」「$\lfloor xy\rfloor=\lfloor x\rfloor\lfloor y\rfloor$」という含意である。足し算についての正しい関係は、ずれが $0$ か $1$ であるという不等式(prop-floor-basic の 2)である。

反例:符号を変えると床は天井になる

$\lfloor-2.7\rfloor=-3$ だが $-\lfloor2.7\rfloor=-2$ である。一般に $\lfloor-x\rfloor=-\lceil x\rceil$ であり、$x$ が整数でなければ $-\lfloor x\rfloor-1$ に等しい(prop-floor-basic の 3)。$\lfloor-x\rfloor=-\lfloor x\rfloor$ が成り立つのは $x$ が整数のときに限る。この例は「$x$ が整数である」という仮定を破っている。負の数の割り算の商を $\lfloor a/b\rfloor$ で定めると、$-7$ を $2$ で割った商は $\lfloor-3.5\rfloor=-4$、余りは $-7-2\cdot(-4)=1$ となり、余りが $0$ 以上 $2$ 未満に収まる。

性質

基本的な計算規則

床関数の基本性質

$x,y$ を実数、$n$ を整数とする。

  1. $\lfloor x+n\rfloor=\lfloor x\rfloor+n$ である。
  2. $\lfloor x\rfloor+\lfloor y\rfloor\le\lfloor x+y\rfloor\le\lfloor x\rfloor+\lfloor y\rfloor+1$ である。
  3. $x$ が整数なら $\lfloor-x\rfloor=-\lfloor x\rfloor$、整数でなければ $\lfloor-x\rfloor=-\lfloor x\rfloor-1$ である。
  4. $\lceil x\rceil=-\lfloor-x\rfloor$ である。
  5. $n\le x$ であることと $n\le\lfloor x\rfloor$ であることは同値であり、$x< n$ であることと $\lfloor x\rfloor< n$ であることは同値である。
  6. $x\le y$ なら $\lfloor x\rfloor\le\lfloor y\rfloor$ である。
定義の不等式を変形する

$m:=\lfloor x\rfloor$ とおくと $m\le x< m+1$ である。

  1. $m+n\le x+n< m+n+1$ で $m+n$ は整数なので、一意性から $\lfloor x+n\rfloor=m+n$ である。
  2. $k:=\lfloor y\rfloor$ とおくと $k\le y< k+1$ であり、足して $m+k\le x+y< m+k+2$ である。整数 $m+k$ は $x+y$ 以下なので、$x+y$ 以下の最大の整数 $\lfloor x+y\rfloor$ は $m+k$ 以上である。また $\lfloor x+y\rfloor\le x+y< m+k+2$ で両端が整数なので $\lfloor x+y\rfloor\le m+k+1$ である。
  3. $x$ が整数なら $-x$ も整数なので $\lfloor-x\rfloor=-x=-\lfloor x\rfloor$ である。整数でなければ $m< x< m+1$ なので $-m-1<-x<-m$ であり、$\lfloor-x\rfloor=-m-1$ である。
  4. $M:=-\lfloor-x\rfloor$ とおくと $-M\le-x<-M+1$、すなわち $M-1< x\le M$ であり、$M$ は $\lceil x\rceil$ の定義の不等式を満たす。逆に整数 $M'$ が $M'-1< x\le M'$ を満たせば $-M'\le-x<-M'+1$ なので、$\lfloor-x\rfloor$ の一意性から $-M'=\lfloor-x\rfloor$、すなわち $M'=M$ である。よって $\lceil x\rceil$ はただ 1 つ存在して $M$ に等しい。
  5. $n\le m$ なら $n\le m\le x$ である。逆に $n\le x$ なら、$m$ は $x$ 以下の最大の整数なので $n\le m$ である。後半は前半の対偶である。
  6. $\lfloor x\rfloor\le x\le y$ なので、5 を $n=\lfloor x\rfloor$ と $y$ に使えばよい。$\square$

5 は、床関数を不等式に出入りさせる基本の道具である。「整数 $n$ と実数 $x$ の比較では、$x$ を $\lfloor x\rfloor$ に置き換えてよい」と覚えるとよい。以下の証明の多くはこれによる。2 の上下の評価はどちらも等号が起こりうる($x=y=0$ で左、$x=y=0.5$ で右)。特に $y=x$ として $2\lfloor x\rfloor\le\lfloor2x\rfloor\le2\lfloor x\rfloor+1$ を得る(Sho08 §1.1 の Exercise 1.4、p. 4)。

床関数の連続性

床関数は、整数でない点では連続(連続関数)であり、整数 $n$ では右連続だが左連続でない。すなわち $x\to n$ のとき右からの極限は $n$、左からの極限は $n-1$ である。

階段の段ごとに見る

$x_0$ が整数でなければ $m< x_0< m+1$($m=\lfloor x_0\rfloor$)であり、開区間 $(m,m+1)$ の上で床関数は定数 $m$ なので、$x_0$ で連続である。整数 $n$ については、$n\le x< n+1$ では $\lfloor x\rfloor=n$ なので右からの極限は $n=\lfloor n\rfloor$ であり、$n-1\le x< n$ では $\lfloor x\rfloor=n-1$ なので左からの極限は $n-1\ne\lfloor n\rfloor$ である。$\square$

入れ子の床関数と倍数の個数

入れ子の床関数

$x$ を実数、$m,n$ を正の整数とすると
$$ \Bigl\lfloor\frac{\lfloor x\rfloor}{n}\Bigr\rfloor=\Bigl\lfloor\frac xn\Bigr\rfloor,\qquad \Bigl\lfloor\frac{\lfloor x/m\rfloor}{n}\Bigr\rfloor=\Bigl\lfloor\frac{x}{mn}\Bigr\rfloor $$
である。

整数との比較に帰着する

任意の整数 $k$ について、prop-floor-basic の 5 と $n>0$ を繰り返し使うと
$$ k\le\Bigl\lfloor\frac{\lfloor x\rfloor}{n}\Bigr\rfloor\iff k\le\frac{\lfloor x\rfloor}{n}\iff kn\le\lfloor x\rfloor\iff kn\le x\iff k\le\frac xn\iff k\le\Bigl\lfloor\frac xn\Bigr\rfloor $$
である($kn$ は整数)。2 つの整数 $A,B$ が「すべての整数 $k$ について $k\le A\iff k\le B$」を満たせば、$k=A$ と $k=B$ を代入して $A\le B$、$B\le A$ なので $A=B$ である。後半の等式は、前半を $x/m$ に使えば $\lfloor\lfloor x/m\rfloor/n\rfloor=\lfloor x/(mn)\rfloor$ となる。$\square$

たとえば $10000$ 秒が何時間(端数切り捨て)かを、まず分に直して $\lfloor10000/60\rfloor=166$ 分、それを時間に直して $\lfloor166/60\rfloor=2$ 時間としても、直接 $\lfloor10000/3600\rfloor=2$ としても同じである。この性質は Sho08 §1.1 の Exercise 1.5(p. 5)にある。$n>0$ の仮定は外せない。$n=-1$ では $\lfloor\lfloor0.5\rfloor/(-1)\rfloor=0$ だが $\lfloor0.5/(-1)\rfloor=-1$ である。

倍数の個数

$x\ge0$ を実数、$d$ を正の整数とする。$1$ 以上 $x$ 以下の整数のうち $d$ の倍数であるものの個数は $\lfloor x/d\rfloor$ である。

倍数に番号を付ける

$1$ 以上 $x$ 以下の $d$ の倍数は、正の整数 $k$ によって $kd$ と書け、$kd\le x$ を満たすものである。prop-floor-basic の 5 により、正の整数 $k$ について $kd\le x\iff k\le x/d\iff k\le\lfloor x/d\rfloor$ である。したがって求める倍数は $k=1,2,\dots,\lfloor x/d\rfloor$ に対応する $\lfloor x/d\rfloor$ 個である($\lfloor x/d\rfloor=0$ なら $0$ 個)。$\square$

この命題は Sho08 §1.1 の Exercise 1.3(p. 4)にある。階乗 の記事の定理「Legendre の公式」は、$n!=1\cdot2\cdots n$ に含まれる素因数 $p$ の個数 $v_p(n!)$ を、$p$ の倍数、$p^2$ の倍数、…の個数の和として数えたもので、各項がこの命題による。包除原理と組み合わせると、いくつかの素数のどれでも割り切れない数の個数を床関数の和で書ける。$1$ から $100$ までで $2,3,5$ のどれでも割り切れない数は
$$ 100-(50+33+20)+(16+10+6)-3=26 $$
個である。

約数の個数の和

約数の個数の和

正の整数 $n$ について、$k$ の正の約数の個数を $\tau(k)$ とすると
$$ \sum_{k=1}^n\tau(k)=\sum_{d=1}^n\Bigl\lfloor\frac nd\Bigr\rfloor $$
である。

組を 2 通りに数える

$1\le k\le n$、$1\le d\le n$、$d\mid k$ を満たす整数の組 $(d,k)$ の個数を 2 通りに数える。$k$ を固定すると $d$ は $k$ の正の約数を動くので $\tau(k)$ 個であり($k$ の正の約数は $k$ 以下、したがって $n$ 以下なので $d\le n$ の条件は自動的に満たされる)、$k$ について足すと左辺になる。$d$ を固定すると $k$ は $1$ 以上 $n$ 以下の $d$ の倍数を動くので、prop-floor-multiples により $\lfloor n/d\rfloor$ 個であり、$d$ について足すと右辺になる。$\square$

$n=10$ では左辺は $1+2+2+3+2+4+2+4+3+4=27$、右辺は $10+5+3+2+2+1+1+1+1+1=27$ である。右辺は $n/d$ の和 $n(1+\frac12+\cdots+\frac1n)$ に近いので、この等式から約数の個数の平均が $\log n$ 程度であることがわかる(約数 の記事の命題「約数の個数の平均」)。同じ「組を 2 通りに数える」議論で、Möbius関数 の記事の系「床関数を使った和」が得られる。

Hermite の恒等式

Hermiteの恒等式

実数 $x$ と正の整数 $n$ について
$$ \sum_{k=0}^{n-1}\Bigl\lfloor x+\frac kn\Bigr\rfloor=\lfloor nx\rfloor $$
である。

周期 $\frac{1}{n}$ の関数とみる

$f(x):=\sum_{k=0}^{n-1}\lfloor x+k/n\rfloor-\lfloor nx\rfloor$ とおく。$x$ を $x+\frac1n$ に替えると、左の和の項は $\lfloor x+\frac{k+1}n\rfloor$($k=0,\dots,n-1$)、すなわち $\lfloor x+\frac1n\rfloor,\dots,\lfloor x+\frac{n-1}n\rfloor,\lfloor x+1\rfloor$ になる。これはもとの項から $\lfloor x\rfloor$ を除いて $\lfloor x+1\rfloor=\lfloor x\rfloor+1$ を加えたものなので、和は $1$ 増える。一方 $\lfloor n(x+\frac1n)\rfloor=\lfloor nx+1\rfloor=\lfloor nx\rfloor+1$ も $1$ 増える(prop-floor-basic の 1)。よって $f(x+\frac1n)=f(x)$ である。
$0\le x<\frac1n$ なら、$0\le x+\frac kn<\frac{k+1}n\le1$ なので左の和の各項は $0$、$0\le nx<1$ なので $\lfloor nx\rfloor=0$ であり、$f(x)=0$ である。任意の実数 $x$ は、$j:=\lfloor nx\rfloor$ とおくと $x=y+\frac jn$、$0\le y<\frac1n$ と書ける($y:=x-\frac jn$ について $0\le ny=nx-j<1$)。前半の周期性を $|j|$ 回使って $f(x)=f(y)=0$ である。$\square$

たとえば $x=0.4$、$n=3$ では $\lfloor0.4\rfloor+\lfloor0.7\overline{3}\rfloor+\lfloor1.0\overline{6}\rfloor=0+0+1=1=\lfloor1.2\rfloor$ である。$n=2$ の場合 $\lfloor x\rfloor+\lfloor x+\frac12\rfloor=\lfloor2x\rfloor$ は、「$2x$ の床は、$x$ の床と $x$ の四捨五入の和」と読める。

直線の下の格子点

互いに素な分母の床関数の和

$m,n$ を互いに素な正の整数とすると
$$ \sum_{k=1}^{n-1}\Bigl\lfloor\frac{km}{n}\Bigr\rfloor=\frac{(m-1)(n-1)}{2} $$
である。

$k$ と $n-k$ を組にする

$n=1$ なら両辺とも $0$ である。$n\ge2$、$1\le k\le n-1$ とする。$n$ と $m$ は互いに素で $n\nmid k$ なので、$n\nmid km$(互いに素 の記事の命題「互いに素な因子の消去」)であり、$km/n$ は整数でない。同様に $(n-k)m/n$ も整数でない。2 つの和は整数 $m$ であり、小数部分は $0<\{km/n\}<1$ などを満たすので $\{km/n\}+\{(n-k)m/n\}=1$、したがって
$$ \Bigl\lfloor\frac{km}{n}\Bigr\rfloor+\Bigl\lfloor\frac{(n-k)m}{n}\Bigr\rfloor=m-\Bigl(\Bigl\{\frac{km}{n}\Bigr\}+\Bigl\{\frac{(n-k)m}{n}\Bigr\}\Bigr)=m-1 $$
である。$k=1,\dots,n-1$ について足すと、$k\mapsto n-k$ は $\{1,\dots,n-1\}$ の全単射なので、左辺は求める和 $S$ の 2 倍であり、$2S=(n-1)(m-1)$ である。$\square$

各項 $\lfloor km/n\rfloor$ は、$x=k$ の位置で $1\le y\le km/n$ を満たす整数 $y$ の個数であり、対角線 $y=mx/n$ の下側だけでなく線上の点も数える。互いに素なら対角線上に格子点はないので、左辺は $0< x< n$、$0< y< m$ の長方形の中で対角線の下側または線上にある格子点の個数を $x$ 座標ごとに数えたものになり、長方形内の $(m-1)(n-1)$ 個の格子点が対角線の上下に半分ずつ分かれる。たとえば $m=3$、$n=5$ では $0+1+1+2=4=\frac{2\cdot4}2$ である。互いに素の仮定は外せない。$m=2$、$n=4$ では左辺は $\lfloor\frac24\rfloor+\lfloor\frac44\rfloor+\lfloor\frac64\rfloor=2$($k=2$ の項 $\lfloor4/4\rfloor=1$ は対角線上の点 $(2,1)$ を数えている)だが右辺は $\frac32$ である。これは、$k=2$ では $n-k=2$ となって $k$ と $n-k$ が同じ項になり、証明で使った等式 $\{km/n\}+\{(n-k)m/n\}=1$ がこの点では左辺の 2 つの項がともに $\{1\}=0$ となり、左辺が $0$、右辺が $1$ で成り立たないことが原因である。2 つの素数 $p,q$ について同じ数え方をしたものが、平方剰余の相互法則の Eisenstein による証明の中心になる(同記事の補題「長方形の中の格子点」)。

補足

文献

床関数と天井関数の定義と、$\lfloor a/b\rfloor$ が商を与えることは Sho08 §1.1 の "Floors and ceilings" と "The mod operator"(p. 4)にあり、倍数の個数と入れ子の床関数は同じ節の Exercise 1.3・1.5(pp. 4–5)である。Cri24 は Definition 3.3.3(p. 29)で床関数を greatest integer function として導入している。

関連項目

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する