수학 과 컴퓨터 과학 에서 바닥 함수 (영어 : floor function )는 각 실수 이하의 최대 정수 를 구하는 함수 이다. 천장 함수 (天障函數, 영어 : ceiling function )는 각 실수 이상의 최소 정수를 구하는 함수이다. 바닥 함수는 내림 함수 · 버림 함수 · 최대 정수 함수 (最大整數函數, 영어 : greatest integer function )라고도 하며, 천장 함수는 올림 함수 · 최소 정수 함수 (最小整數函數, 영어 : least integer function )라고도 한다.
다음과 같은 부등식들이 성립한다.
⌊
x
⌋
≤
x
<
⌊
x
⌋
+
1
{\displaystyle \lfloor x\rfloor \leq x<\lfloor x\rfloor +1}
⌈
x
⌉
−
1
<
x
≤
⌈
x
⌉
{\displaystyle \lceil x\rceil -1<x\leq \lceil x\rceil }
비슷하게, 다음과 같은 부등식들이 성립한다.
x
−
1
<
⌊
x
⌋
≤
x
{\displaystyle x-1<\lfloor x\rfloor \leq x}
x
≤
⌈
x
⌉
<
x
+
1
{\displaystyle x\leq \lceil x\rceil <x+1}
0
≤
{
x
}
<
1
{\displaystyle 0\leq \{x\}<1}
삼각 부등식 과 닮은 다음과 같은 부등식들이 성립한다.
⌊
x
⌋
+
⌊
y
⌋
≤
⌊
x
+
y
⌋
≤
⌊
x
⌋
+
⌊
y
⌋
+
1
{\displaystyle \lfloor x\rfloor +\lfloor y\rfloor \leq \lfloor x+y\rfloor \leq \lfloor x\rfloor +\lfloor y\rfloor +1}
⌈
x
⌉
+
⌈
y
⌉
−
1
≤
⌈
x
+
y
⌉
≤
⌈
x
⌉
+
⌈
y
⌉
{\displaystyle \lceil x\rceil +\lceil y\rceil -1\leq \lceil x+y\rceil \leq \lceil x\rceil +\lceil y\rceil }
바닥 함수와 천장 함수를 통해 실수 부등식과 동치 인 정수 부등식을 얻을 수 있다. 즉, 임의의
n
∈
Z
{\displaystyle n\in \mathbb {Z} }
및
x
∈
R
{\displaystyle x\in \mathbb {R} }
에 대하여, 다음 두 부등식이 서로 동치이다.
n
>
x
{\displaystyle n>x}
n
>
⌊
x
⌋
{\displaystyle n>\lfloor x\rfloor }
마찬가지로,
n
{\displaystyle n}
및
x
{\displaystyle x}
에 대하여, 다음 두 부등식이 서로 동치이다.
n
<
x
{\displaystyle n<x}
n
<
⌈
x
⌉
{\displaystyle n<\lceil x\rceil }
마찬가지로,
n
{\displaystyle n}
및
x
{\displaystyle x}
에 대하여, 다음 두 부등식이 서로 동치이다.
n
≥
x
{\displaystyle n\geq x}
n
≥
⌈
x
⌉
{\displaystyle n\geq \lceil x\rceil }
마찬가지로,
n
{\displaystyle n}
및
x
{\displaystyle x}
에 대하여, 다음 두 부등식이 서로 동치이다.
n
≤
x
{\displaystyle n\leq x}
n
≤
⌊
x
⌋
{\displaystyle n\leq \lfloor x\rfloor }
천장 함수를 다음과 같이 바닥 함수를 써서 나타낼 수 있다.
⌈
x
⌉
=
−
⌊
−
x
⌋
=
{
⌊
x
⌋
x
∈
Z
⌊
x
⌋
+
1
x
∉
Z
{\displaystyle \lceil x\rceil =-\lfloor -x\rfloor ={\begin{cases}\lfloor x\rfloor &x\in \mathbb {Z} \\\lfloor x\rfloor +1&x\not \in \mathbb {Z} \end{cases}}}
비슷하게, 다음과 같은 항등식들이 성립한다.
⌊
−
x
⌋
=
{
−
⌊
x
⌋
x
∈
Z
−
⌊
x
⌋
−
1
x
∉
Z
{\displaystyle \lfloor -x\rfloor ={\begin{cases}-\lfloor x\rfloor &x\in \mathbb {Z} \\-\lfloor x\rfloor -1&x\not \in \mathbb {Z} \end{cases}}}
⌈
−
x
⌉
=
{
−
⌈
x
⌉
x
∈
Z
−
⌈
x
⌉
+
1
x
∉
Z
{\displaystyle \lceil -x\rceil ={\begin{cases}-\lceil x\rceil &x\in \mathbb {Z} \\-\lceil x\rceil +1&x\not \in \mathbb {Z} \end{cases}}}
{
−
x
}
=
{
0
x
∈
Z
−
{
x
}
+
1
x
∉
Z
{\displaystyle \{-x\}={\begin{cases}0&x\in \mathbb {Z} \\-\{x\}+1&x\not \in \mathbb {Z} \end{cases}}}
임의의 정수는 바닥 함수와 천장 함수의 고정점 이다.
⌊
n
⌋
=
⌈
n
⌉
=
n
n
∈
Z
{\displaystyle \lfloor n\rfloor =\lceil n\rceil =n\qquad n\in \mathbb {Z} }
바닥 함수와 천장 함수의 정의에 따라, 다음과 같은 항등식들이 성립한다.
max
{
n
∈
Z
:
n
≤
x
}
=
⌊
x
⌋
{\displaystyle \max\{n\in \mathbb {Z} \colon n\leq x\}=\lfloor x\rfloor }
min
{
n
∈
Z
:
n
≥
x
}
=
⌈
x
⌉
{\displaystyle \min\{n\in \mathbb {Z} \colon n\geq x\}=\lceil x\rceil }
min
{
n
∈
Z
:
n
>
x
}
=
⌊
x
⌋
+
1
{\displaystyle \min\{n\in \mathbb {Z} \colon n>x\}=\lfloor x\rfloor +1}
max
{
n
∈
Z
:
n
<
x
}
=
⌈
x
⌉
−
1
{\displaystyle \max\{n\in \mathbb {Z} \colon n<x\}=\lceil x\rceil -1}
바닥 함수와 천장 함수와 분수 부분 함수의 합성 은 다음과 같다. 특히, 바닥 함수와 천장 함수와 분수 부분 함수는 모두 멱등 함수 이다.
⌊
⌊
x
⌋
⌋
=
⌊
x
⌋
{\displaystyle \lfloor \lfloor x\rfloor \rfloor =\lfloor x\rfloor }
⌈
⌈
x
⌉
⌉
=
⌈
x
⌉
{\displaystyle \lceil \lceil x\rceil \rceil =\lceil x\rceil }
{
{
x
}
}
=
{
x
}
{\displaystyle \{\{x\}\}=\{x\}}
⌈
⌊
x
⌋
⌉
=
⌊
x
⌋
{\displaystyle \lceil \lfloor x\rfloor \rceil =\lfloor x\rfloor }
⌊
⌈
x
⌉
⌋
=
⌈
x
⌉
{\displaystyle \lfloor \lceil x\rceil \rfloor =\lceil x\rceil }
{
⌊
x
⌋
}
=
0
{\displaystyle \{\lfloor x\rfloor \}=0}
⌊
{
x
}
⌋
=
0
{\displaystyle \lfloor \{x\}\rfloor =0}
{
⌈
x
⌉
}
=
0
{\displaystyle \{\lceil x\rceil \}=0}
⌈
{
x
}
⌉
=
{
0
x
∈
Z
1
x
∉
Z
{\displaystyle \lceil \{x\}\rceil ={\begin{cases}0&x\in \mathbb {Z} \\1&x\not \in \mathbb {Z} \end{cases}}}
임의의
n
∈
Z
{\displaystyle n\in \mathbb {Z} }
및
x
∈
R
{\displaystyle x\in \mathbb {R} }
에 대하여, 다음과 같은 항등식들이 성립한다. 특히, 분수 부분 함수는 양의 최소 주기가 1인 주기 함수 이다.
⌊
x
+
n
⌋
=
⌊
x
⌋
+
n
{\displaystyle \lfloor x+n\rfloor =\lfloor x\rfloor +n}
⌈
x
+
n
⌉
=
⌈
x
⌉
+
n
{\displaystyle \lceil x+n\rceil =\lceil x\rceil +n}
{
x
+
n
}
=
{
x
}
{\displaystyle \{x+n\}=\{x\}}
임의의
m
,
n
∈
Z
{\displaystyle m,n\in \mathbb {Z} }
(
n
>
0
{\displaystyle n>0}
) 및
x
∈
R
{\displaystyle x\in \mathbb {R} }
에 대하여, 다음과 같은 항등식들이 성립한다.
⌊
x
+
m
n
⌋
=
⌊
⌊
x
⌋
+
m
n
⌋
{\displaystyle \left\lfloor {\frac {x+m}{n}}\right\rfloor =\left\lfloor {\frac {\lfloor x\rfloor +m}{n}}\right\rfloor }
⌈
x
+
m
n
⌉
=
⌈
⌈
x
⌉
+
m
n
⌉
{\displaystyle \left\lceil {\frac {x+m}{n}}\right\rceil =\left\lceil {\frac {\lceil x\rceil +m}{n}}\right\rceil }
⌈
m
n
⌉
=
⌊
m
+
n
−
1
n
⌋
{\displaystyle {\biggl \lceil }{\frac {m}{n}}{\biggr \rceil }=\left\lfloor {\frac {m+n-1}{n}}\right\rfloor }
임의의
n
∈
Z
+
{\displaystyle n\in \mathbb {Z} ^{+}}
및
x
,
y
∈
R
{\displaystyle x,y\in \mathbb {R} }
에 대하여, 다음과 같은 항등식들이 성립한다.
⌊
⌊
x
/
y
⌋
/
n
⌋
=
⌊
x
/
(
y
n
)
⌋
{\displaystyle \lfloor \lfloor x/y\rfloor /n\rfloor =\lfloor x/(yn)\rfloor }
⌈
⌈
x
/
y
⌉
/
n
⌉
=
⌈
x
/
(
y
n
)
⌉
{\displaystyle \lceil \lceil x/y\rceil /n\rceil =\lceil x/(yn)\rceil }
임의의
n
∈
Z
+
{\displaystyle n\in \mathbb {Z} ^{+}}
및
x
∈
R
{\displaystyle x\in \mathbb {R} }
에 대하여, 다음과 같은 합 공식이 성립한다. 이를 에르미트 항등식 이라고 한다.
⌊
n
x
⌋
=
⌊
x
⌋
+
⌊
x
+
1
n
⌋
+
⋯
+
⌊
x
+
n
−
1
n
⌋
{\displaystyle \lfloor nx\rfloor =\lfloor x\rfloor +\left\lfloor x+{\frac {1}{n}}\right\rfloor +\cdots +\left\lfloor x+{\frac {n-1}{n}}\right\rfloor }
⌈
n
x
⌉
=
⌈
x
⌉
+
⌈
x
−
1
n
⌉
+
⋯
+
⌈
x
−
n
−
1
n
⌉
{\displaystyle \lceil nx\rceil =\lceil x\rceil +\left\lceil x-{\frac {1}{n}}\right\rceil +\cdots +\left\lceil x-{\frac {n-1}{n}}\right\rceil }
특히,
x
=
m
/
n
{\displaystyle x=m/n}
(
m
∈
Z
{\displaystyle m\in \mathbb {Z} }
)인 경우 다음과 같다.
m
=
⌊
m
n
⌋
+
⌊
m
+
1
n
⌋
+
⋯
+
⌊
m
+
n
−
1
n
⌋
=
⌈
m
n
⌉
+
⌈
m
−
1
n
⌉
+
⋯
+
⌈
m
−
n
+
1
n
⌉
{\displaystyle {\begin{aligned}m&={\biggl \lfloor }{\frac {m}{n}}{\biggr \rfloor }+\left\lfloor {\frac {m+1}{n}}\right\rfloor +\cdots +\left\lfloor {\frac {m+n-1}{n}}\right\rfloor \\&={\biggl \lceil }{\frac {m}{n}}{\biggr \rceil }+\left\lceil {\frac {m-1}{n}}\right\rceil +\cdots +\left\lceil {\frac {m-n+1}{n}}\right\rceil \end{aligned}}}
특히,
n
=
2
{\displaystyle n=2}
인 경우 다음과 같은 항등식을 유도할 수 있다.
m
=
⌊
m
2
⌋
+
⌈
m
2
⌉
{\displaystyle m={\biggl \lfloor }{\frac {m}{2}}{\biggr \rfloor }+{\biggl \lceil }{\frac {m}{2}}{\biggr \rceil }}
임의의
m
,
n
∈
Z
+
{\displaystyle m,n\in \mathbb {Z} ^{+}}
및
x
∈
R
{\displaystyle x\in \mathbb {R} }
에 대하여, 다음이 성립한다.
⌊
x
n
⌋
+
⌊
x
+
m
n
⌋
+
⌊
x
+
2
m
n
⌋
+
⋯
+
⌊
x
+
(
n
−
1
)
m
n
⌋
=
⌊
x
m
⌋
+
⌊
x
+
n
m
⌋
+
⌊
x
+
2
n
m
⌋
+
⋯
+
⌊
x
+
(
m
−
1
)
n
m
⌋
{\displaystyle {\biggl \lfloor }{\frac {x}{n}}{\biggr \rfloor }+{\biggl \lfloor }{\frac {x+m}{n}}{\biggr \rfloor }+\left\lfloor {\frac {x+2m}{n}}\right\rfloor +\cdots +\left\lfloor {\frac {x+(n-1)m}{n}}\right\rfloor ={\biggl \lfloor }{\frac {x}{m}}{\biggr \rfloor }+{\biggl \lfloor }{\frac {x+n}{m}}{\biggr \rfloor }+\left\lfloor {\frac {x+2n}{m}}\right\rfloor +\cdots +\left\lfloor {\frac {x+(m-1)n}{m}}\right\rfloor }
즉, 이러한 합 공식은
m
,
n
{\displaystyle m,n}
의 순서와 무관하다. 특히,
x
=
0
{\displaystyle x=0}
인 경우 합이 다음과 같이 주어진다.
⌊
m
n
⌋
+
⌊
2
m
n
⌋
+
⋯
+
⌊
(
n
−
2
)
m
n
⌋
=
(
m
−
1
)
(
n
−
1
)
+
gcd
{
m
,
n
}
−
1
2
{\displaystyle {\biggl \lfloor }{\frac {m}{n}}{\biggr \rfloor }+\left\lfloor {\frac {2m}{n}}\right\rfloor +\cdots +\left\lfloor {\frac {(n-2)m}{n}}\right\rfloor ={\frac {(m-1)(n-1)+\gcd\{m,n\}-1}{2}}}
특히,
m
,
n
{\displaystyle m,n}
이 서로소 인 경우 (즉,
gcd
{
m
,
n
}
=
1
{\displaystyle \gcd\{m,n\}=1}
인 경우) 다음과 같다.
⌊
m
n
⌋
+
⌊
2
m
n
⌋
+
⋯
+
⌊
(
n
−
2
)
m
n
⌋
=
(
m
−
1
)
(
n
−
1
)
2
{\displaystyle {\biggl \lfloor }{\frac {m}{n}}{\biggr \rfloor }+\left\lfloor {\frac {2m}{n}}\right\rfloor +\cdots +\left\lfloor {\frac {(n-2)m}{n}}\right\rfloor ={\frac {(m-1)(n-1)}{2}}}
분수 부분 함수는 1-주기 함수 이며, 그 푸리에 급수 는 다음과 같다.
{
x
}
=
1
2
−
1
π
∑
n
=
1
∞
sin
(
2
n
π
x
)
n
x
∉
Z
{\displaystyle \{x\}={\frac {1}{2}}-{\frac {1}{\pi }}\sum _{n=1}^{\infty }{\frac {\sin(2n\pi x)}{n}}\qquad x\not \in \mathbb {Z} }
바닥 함수와 천장 함수는 주기 함수가 아니므로, 이들의 푸리에 급수는 균등 수렴하지 않는다. 바닥 함수와 천장 함수는 조각마다 일차 함수이며, 분수 부분 함수는 조각마다 상수 함수이다. 이 셋의 불연속점 집합은 모두 정수 집합이다.
실수
x
{\displaystyle x}
의 정수 부분은
⌊
x
⌋
{\displaystyle \lfloor x\rfloor }
이며, 분수 부분은
{
x
}
{\displaystyle \{x\}}
이다. 분수 부분은 소수 부분이라 하기도 한다. 예를 들어, 다음과 같다.
⌊
2.34
⌋
=
2
{\displaystyle \lfloor 2.34\rfloor =2}
{
2.34
}
=
0.34
{\displaystyle \{2.34\}=0.34}
컴퓨터 과학 에서는 정수 부분과 분수 부분을 조금 다르게 정의하기도 한다. 예를 들어, 다음과 같은 변형된 정수 부분 함수와 분수 부분 함수가 쓰인다.
ip
(
x
)
:=
sgn
(
x
)
⌊
|
x
|
⌋
=
{
⌊
x
⌋
x
≥
0
⌈
x
⌉
x
<
0
{\displaystyle \operatorname {ip} (x):=\operatorname {sgn}(x)\lfloor |x|\rfloor ={\begin{cases}\lfloor x\rfloor &x\geq 0\\\lceil x\rceil &x<0\end{cases}}}
fp
(
x
)
:=
x
−
ip
(
x
)
=
sgn
(
x
)
(
|
x
|
−
⌊
|
x
|
⌋
)
=
{
x
−
⌊
x
⌋
x
≥
0
x
−
⌈
x
⌉
x
<
0
{\displaystyle \operatorname {fp} (x):=x-\operatorname {ip} (x)=\operatorname {sgn}(x)(|x|-\lfloor |x|\rfloor )={\begin{cases}x-\lfloor x\rfloor &x\geq 0\\x-\lceil x\rceil &x<0\end{cases}}}
실수
x
{\displaystyle x}
를 정수로 내림 한 값은
⌊
x
⌋
{\displaystyle \lfloor x\rfloor }
이며, 정수로 올림 한 값은
⌈
x
⌉
{\displaystyle \lceil x\rceil }
이다. 컴퓨터 과학 에서는 변형된 내림·올림이 쓰이기도 한다. 즉, 실수
x
{\displaystyle x}
를 정수로 내림(올림)한 값을
ip
(
x
)
{\displaystyle \operatorname {ip} (x)}
로 정의한다.
실수
x
{\displaystyle x}
를 정수로 반올림 한 값은
⌊
x
+
0.5
⌋
{\displaystyle \lfloor x+0.5\rfloor }
이다. 예를 들어, 다음과 같다.
⌊
2.34
+
0.5
⌋
=
2
{\displaystyle \lfloor 2.34+0.5\rfloor =2}
⌊
7.5
+
0.5
⌋
=
8
{\displaystyle \lfloor 7.5+0.5\rfloor =8}
컴퓨터 과학에서는 반올림의 여러 가지 변형이 사용되는데, 이들은 반정수 의 경우를 달리 정의하며, 그 밖의 경우는 원래의 반올림과 일치한다. 원래의 반올림은 반정수를 비교적 큰 정수로 근사한다. 반정수를 비교적 작은 정수로 근사하는 반올림은
x
↦
⌈
x
−
0.5
⌉
{\displaystyle x\mapsto \lceil x-0.5\rceil }
이며, 반정수를 절댓값이 비교적 큰 정수로 근사하는 반올림은
x
↦
sgn
(
x
)
⌊
|
x
|
+
0.5
⌋
{\displaystyle x\mapsto \operatorname {sgn}(x)\lfloor |x|+0.5\rfloor }
이며, 반정수를 절댓값이 비교적 작은 정수로 근사하는 반올림은
x
↦
sgn
(
x
)
⌈
|
x
|
−
0.5
⌉
{\displaystyle x\mapsto \operatorname {sgn}(x)\lceil |x|-0.5\rceil }
이다. 또한, 최근 정수 함수 (最近整數函數, 영어 : nearest integer function )라고 불리는 다음과 같은 함수는 반정수를 짝수로 근사하는 반올림 함수이다.
nint
(
x
)
=
⌊
x
⌉
:=
⌊
x
−
0.5
⌋
−
⌊
x
−
0.5
2
⌋
−
⌊
−
x
−
0.5
2
⌋
=
{
⌊
x
+
0.5
⌋
x
∉
2
Z
+
0.5
⌊
x
−
0.5
⌋
x
∈
2
Z
+
0.5
{\displaystyle \operatorname {nint} (x)=\lfloor x\rceil :=\lfloor x-0.5\rfloor -\left\lfloor {\frac {x-0.5}{2}}\right\rfloor -\left\lfloor -{\frac {x-0.5}{2}}\right\rfloor ={\begin{cases}\lfloor x+0.5\rfloor &x\not \in 2\mathbb {Z} +0.5\\\lfloor x-0.5\rfloor &x\in 2\mathbb {Z} +0.5\end{cases}}}
두 정수
m
,
n
∈
Z
{\displaystyle m,n\in \mathbb {Z} }
(
n
≠
0
{\displaystyle n\neq 0}
)의 나머지 있는 나눗셈 의 결과를 바닥 함수를 통해 나타낼 수 있다. 즉, 몫은
⌊
m
n
⌋
{\displaystyle {\biggl \lfloor }{\frac {m}{n}}{\biggr \rfloor }}
이며, 나머지는
m
−
⌊
m
n
⌋
n
{\displaystyle m-{\biggl \lfloor }{\frac {m}{n}}{\biggr \rfloor }n}
이다.
b
{\displaystyle b}
진법에서 정수
n
{\displaystyle n}
의 자릿수 는
⌊
log
b
|
n
|
⌋
+
1
=
⌈
log
b
(
|
n
|
+
1
)
⌉
{\displaystyle \lfloor \log _{b}|n|\rfloor +1=\lceil \log _{b}(|n|+1)\rceil }
이다.
양의 정수
n
{\displaystyle n}
및 소수
p
{\displaystyle p}
에 대하여,
p
e
∣
n
!
{\displaystyle p^{e}\mid n!}
인 최대
e
{\displaystyle e}
는
⌊
n
p
⌋
+
⌊
n
p
2
⌋
+
⋯
+
⌊
n
p
⌊
log
p
n
⌋
⌋
{\displaystyle \left\lfloor {\frac {n}{p}}\right\rfloor +\left\lfloor {\frac {n}{p^{2}}}\right\rfloor +\cdots +{\biggl \lfloor }{\frac {n}{p^{\lfloor \log _{p}n\rfloor }}}{\biggr \rfloor }}
이다. 이를 르장드르 공식 이라고 한다.
↑ Lemmermeyer, Franz (2000), Reciprocity Laws: from Euler to Eisenstein, Berlin: Springer, pp. 10, 23., ISBN 3-540-66957-4
↑ Iverson, Kenneth E. (1962), A Programming Language, Wiley, p. 12.
↑ Nicholas J. Higham, Handbook of writing for the mathematical sciences, SIAM, p. 25., ISBN 0-89871-420-6