바닥 함수와 천장 함수

수학과 컴퓨터 과학에서 **바닥 함수**(floor function)는 각 실수 이하의 최대 정수를 구하는 함수이다. **천장 함수**(天障函數, ceiling function)는 각 실수 이상의 최소 정수를 구하는 함수이다. 바닥 함수는 **내림 함수** · **버림 함수** · **최대 정수 함수**(最大整數函數, greatest integer function)라고도 하며, 천장 함수는 **올림 함수** · **최소 정수 함수**(最小整數函數, least integer function)라고도 한다.
# 정의
바닥 함수의 그래프 천장 함수의 그래프
## 바닥 함수
**바닥 함수** \lfloor-\rfloor\colon\mathbb R\to\mathbb Z는 다음과 같다. :\lfloor x\rfloor=\max\\{n\in\mathbb Z\colon n\le x\\} 즉, 실수 x의 바닥 함수 값은 x와 같거나 그보다 작은 정수 가운데 가장 큰 하나이다. 예를 들어, 다음과 같다. :\lfloor 5.2\rfloor=5 :\lfloor-5.2\rfloor=-6 :\lfloor 3\rfloor=3 :\lfloor-4\rfloor=-4 바닥 함수의 여러 가지 표기법은 다음과 같다. * \lfloor x\rfloor * [x] 이를 **가우스 기호**라고 한다. 하지만 바닥 함수는 가우스 함수와 관련이 없다. * \operatorname{floor}(x)
## 천장 함수
마찬가지로, **천장 함수** \lceil-\rceil\colon\mathbb R\to\mathbb Z는 다음과 같다. :\lceil x\rceil=\min\\{n\in\mathbb Z\colon n\ge x\\} 즉, 실수 x의 천장 함수 값은 x와 같거나 그보다 큰 정수 가운데 가장 작은 하나이다. 예를 들어, 다음과 같다. :\lceil 3.72\rceil=4 :\lceil-3.72\rceil=-3 :\lceil 4\rceil=4 :\lceil-2\rceil=-2 천장 함수의 여러 가지 표기법은 다음과 같다. * \lceil x\rceil * \operatorname{ceil}(x)
## 분수 부분 함수
**분수 부분 함수**(分數部分函數, fractional part function) \\{-\\}\colon\mathbb R\to[0,1)는 다음과 같다. :\\{x\\}=x-\lfloor x\rfloor=\min\\{y\in\mathbb R_{\ge 0}\colon x-y\in\mathbb Z\\} 예를 들어, 다음과 같다. :\\{8.21\\}=0.21 :\\{-8.21\\}=0.79 :\\{5\\}=0 :\\{-7\\}=0 분수 부분 함수의 여러 가지 표기법은 다음과 같다. * \\{x\\} * \operatorname{frac}(x)
# 성질

## 부등식
다음과 같은 부등식들이 성립한다. :\lfloor x\rfloor\le xx * n>\lfloor x\rfloor 마찬가지로, n 및 x에 대하여, 다음 두 부등식이 서로 동치이다. * n * nx\\}=\lfloor x\rfloor+1 :\max\\{n\in\mathbb Z\colon n 바닥 함수와 천장 함수와 분수 부분 함수의 합성은 다음과 같다. 특히, 바닥 함수와 천장 함수와 분수 부분 함수는 모두 멱등 함수이다. :\lfloor\lfloor x\rfloor\rfloor=\lfloor x\rfloor :\lceil\lceil x\rceil\rceil=\lceil x\rceil :\\{\\{x\\}\\}=\\{x\\} :\lceil\lfloor x\rfloor\rceil=\lfloor x\rfloor :\lfloor\lceil x\rceil\rfloor=\lceil x\rceil :\\{\lfloor x\rfloor\\}=0 :\lfloor\\{x\\}\rfloor=0 :\\{\lceil x\rceil\\}=0 :\lceil\\{x\\}\rceil=\begin{cases}0&x;\in\mathbb Z\\\1&x;\not\in\mathbb Z\end{cases} 임의의 n\in\mathbb Z 및 x\in\mathbb R에 대하여, 다음과 같은 항등식들이 성립한다. 특히, 분수 부분 함수는 양의 최소 주기가 1인 주기 함수이다. :\lfloor x+n\rfloor=\lfloor x\rfloor+n :\lceil x+n\rceil=\lceil x\rceil+n :\\{x+n\\}=\\{x\\} 임의의 m,n\in\mathbb Z (n>0) 및 x\in\mathbb R에 대하여, 다음과 같은 항등식들이 성립한다. :\left\lfloor\frac{x+m}n\right\rfloor=\left\lfloor\frac{\lfloor x\rfloor+m}n\right\rfloor :\left\lceil\frac{x+m}n\right\rceil=\left\lceil\frac{\lceil x\rceil+m}n\right\rceil :\biggl\lceil\frac mn\biggr\rceil=\left\lfloor\frac{m+n-1}n\right\rfloor 임의의 n\in\mathbb Z^+ 및 x,y\in\mathbb R에 대하여, 다음과 같은 항등식들이 성립한다. :\lfloor\lfloor x/y\rfloor/n\rfloor=\lfloor x/(yn)\rfloor :\lceil\lceil x/y\rceil/n\rceil=\lceil x/(yn)\rceil
## 합 공식
임의의 n\in\mathbb Z^+ 및 x\in\mathbb R에 대하여, 다음과 같은 합 공식이 성립한다. 이를 **에르미트 항등식**이라고 한다. :\lfloor nx\rfloor=\lfloor x\rfloor+\left\lfloor x+\frac 1n\right\rfloor+\cdots+\left\lfloor x+\frac{n-1}n\right\rfloor :\lceil nx\rceil=\lceil x\rceil+\left\lceil x-\frac 1n\right\rceil+\cdots+\left\lceil x-\frac{n-1}n\right\rceil 특히, x=m/n (m\in\mathbb Z)인 경우 다음과 같다. :\begin{align}m &=\biggl\lfloor\frac mn\biggr\rfloor+\left\lfloor\frac{m+1}n\right\rfloor+\cdots+\left\lfloor\frac{m+n-1}n\right\rfloor\\\ &=\biggl\lceil\frac mn\biggr\rceil+\left\lceil\frac{m-1}n\right\rceil+\cdots+\left\lceil\frac{m-n+1}n\right\rceil\end{align} 특히, n=2인 경우 다음과 같은 항등식을 유도할 수 있다. :m=\biggl\lfloor\frac m2\biggr\rfloor+\biggl\lceil\frac m2\biggr\rceil 임의의 m,n\in\mathbb Z^+ 및 x\in\mathbb R에 대하여, 다음이 성립한다. :\biggl\lfloor\frac xn\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 xm\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의 순서와 무관하다. 특히, x=0인 경우 합이 다음과 같이 주어진다. :\biggl\lfloor\frac mn\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이 서로소인 경우 (즉, \gcd\\{m,n\\}=1인 경우) 다음과 같다. :\biggl\lfloor\frac mn\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\\}=\frac 12-\frac 1\pi\sum_{n=1}^\infty\frac{\sin(2n\pi x)}n\qquad x\not\in\mathbb Z 바닥 함수와 천장 함수는 주기 함수가 아니므로, 이들의 푸리에 급수는 균등 수렴하지 않는다. 바닥 함수와 천장 함수는 조각마다 일차 함수이며, 분수 부분 함수는 조각마다 상수 함수이다. 이 셋의 불연속점 집합은 모두 정수 집합이다.
# 응용

## 정수 부분·분수 부분
실수 x의 정수 부분은 \lfloor x\rfloor이며, 분수 부분은 \\{x\\}이다. 분수 부분은 소수 부분이라 하기도 한다. 예를 들어, 다음과 같다. :\lfloor 2.34\rfloor=2 :\\{2.34\\}=0.34 컴퓨터 과학에서는 정수 부분과 분수 부분을 조금 다르게 정의하기도 한다. 예를 들어, 다음과 같은 변형된 정수 부분 함수와 분수 부분 함수가 쓰인다. :\operatorname{ip}(x):=\sgn(x)\lfloor|x|\rfloor= \begin{cases}\lfloor x\rfloor&x;\ge 0\\\\\lceil x\rceil&x;<0\end{cases} :\operatorname{fp}(x):=x-\operatorname{ip}(x)=\sgn(x)(|x|-\lfloor|x|\rfloor)= \begin{cases}x-\lfloor x\rfloor&x;\ge 0\\\x-\lceil x\rceil&x;<0\end{cases}
## 내림·올림
올림과 버림 실수 x를 정수로 **내림**한 값은 \lfloor x\rfloor이며, 정수로 **올림**한 값은 \lceil x\rceil이다. 컴퓨터 과학에서는 변형된 내림·올림이 쓰이기도 한다. 즉, 실수 x를 정수로 내림(올림)한 값을 \operatorname{ip}(x)로 정의한다.
## 반올림
실수 x를 정수로 반올림한 값은 \lfloor x+0.5\rfloor이다. 예를 들어, 다음과 같다. :\lfloor 2.34+0.5\rfloor=2 :\lfloor 7.5+0.5\rfloor=8 컴퓨터 과학에서는 반올림의 여러 가지 변형이 사용되는데, 이들은 반정수의 경우를 달리 정의하며, 그 밖의 경우는 원래의 반올림과 일치한다. 원래의 반올림은 반정수를 비교적 큰 정수로 근사한다. 반정수를 비교적 작은 정수로 근사하는 반올림은 x\mapsto\lceil x-0.5\rceil이며, 반정수를 절댓값이 비교적 큰 정수로 근사하는 반올림은 x\mapsto\sgn(x)\lfloor|x|+0.5\rfloor이며, 반정수를 절댓값이 비교적 작은 정수로 근사하는 반올림은 x\mapsto\sgn(x)\lceil|x|-0.5\rceil이다. 또한, **최근 정수 함수**(最近整數函數, nearest integer function)라고 불리는 다음과 같은 함수는 반정수를 짝수로 근사하는 반올림 함수이다. :\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\in\mathbb Z (n\ne 0)의 나머지 있는 나눗셈의 결과를 바닥 함수를 통해 나타낼 수 있다. 즉, 몫은 :\biggl\lfloor\frac mn\biggr\rfloor 이며, 나머지는 :m-\biggl\lfloor\frac mn\biggr\rfloor n 이다.
## 자릿수
b진법에서 정수 n의 자릿수는 :\lfloor\log_b|n|\rfloor+1=\lceil\log_b(|n|+1)\rceil 이다.
## 계승의 소인수 분해
양의 정수 n 및 소수 p에 대하여, p^e\mid n!인 최대 e는 :\left\lfloor\frac np\right\rfloor+\left\lfloor\frac n{p^2}\right\rfloor+\cdots+\biggl\lfloor\frac n{p^{\lfloor\log_pn\rfloor\biggr\rfloor 이다. 이를 르장드르 공식이라고 한다.
# 역사
1808년에 카를 프리드리히 가우스는 이차 상호 법칙의 세 번째 증명에서 기호 [x]를 사용하여 바닥 함수를 정의하였다.Lemmermeyer, Franz (2000), Reciprocity Laws: from Euler to Eisenstein, Berlin: Springer, pp. 10, 23., 이 기호는 1962년에 케네스 아이버슨이 《프로그래밍 언어》(*A Programming Language*)라는 책에서 바닥 함수와 천장 함수라는 용어를 정의하고 기호로 각각 \lfloor x\rfloor 와 \lceil x \rceil 로 나타낼 때까지 표준 형태였다.Iverson, Kenneth E. (1962), A Programming Language, Wiley, p. 12.Nicholas J. Higham, Handbook of writing for the mathematical sciences, SIAM, p. 25., 지금은 두 사람의 기호가 모두 쓰이고 있다.