{{위키데이터 속성 추적}}
[[수학]]과 [[컴퓨터 과학]]에서 '''바닥 함수'''({{llang|en|floor function}})는 각 [[실수]] 이하의 최대 [[정수]]를 구하는 [[함수]]이다. '''천장 함수'''(天障函數, {{llang|en|ceiling function}})는 각 실수 이상의 최소 정수를 구하는 함수이다. 바닥 함수는 '''내림 함수''' · '''버림 함수''' · '''최대 정수 함수'''(最大整數函數, {{llang|en|greatest integer function}})라고도 하며, 천장 함수는 '''올림 함수''' · '''최소 정수 함수'''(最小整數函數, {{llang|en|least integer function}})라고도 한다.

== 정의 ==
[[파일:Floor function.svg|섬네일|오른쪽|300px|바닥 함수의 그래프]]
[[파일:Ceiling function.svg|섬네일|오른쪽|300px|천장 함수의 그래프]]

=== 바닥 함수 ===
'''바닥 함수''' <math>\lfloor-\rfloor\colon\mathbb R\to\mathbb Z</math>는 다음과 같다.
:<math>\lfloor x\rfloor=\max\{n\in\mathbb Z\colon n\le x\}</math>
즉, 실수 <math>x</math>의 바닥 함수 값은 <math>x</math>와 같거나 그보다 작은 정수 가운데 가장 큰 하나이다. 예를 들어, 다음과 같다.
:<math>\lfloor 5.2\rfloor=5</math>
:<math>\lfloor-5.2\rfloor=-6</math>
:<math>\lfloor 3\rfloor=3</math>
:<math>\lfloor-4\rfloor=-4</math>
바닥 함수의 여러 가지 표기법은 다음과 같다.
* <math>\lfloor x\rfloor</math>
* <math>[x]</math> 이를 '''가우스 기호'''라고 한다. 하지만 바닥 함수는 [[가우스 함수]]와 관련이 없다.
* <math>\operatorname{floor}(x)</math>

=== 천장 함수 ===
마찬가지로, '''천장 함수''' <math>\lceil-\rceil\colon\mathbb R\to\mathbb Z</math>는 다음과 같다.
:<math>\lceil x\rceil=\min\{n\in\mathbb Z\colon n\ge x\}</math>
즉, 실수 <math>x</math>의 천장 함수 값은 <math>x</math>와 같거나 그보다 큰 정수 가운데 가장 작은 하나이다. 예를 들어, 다음과 같다.
:<math>\lceil 3.72\rceil=4</math>
:<math>\lceil-3.72\rceil=-3</math>
:<math>\lceil 4\rceil=4</math>
:<math>\lceil-2\rceil=-2</math>
천장 함수의 여러 가지 표기법은 다음과 같다.
* <math>\lceil x\rceil</math>
* <math>\operatorname{ceil}(x)</math>

=== 분수 부분 함수 ===
'''분수 부분 함수'''(分數部分函數, {{llang|en|fractional part function}}) <math>\{-\}\colon\mathbb R\to[0,1)</math>는 다음과 같다.
:<math>\{x\}=x-\lfloor x\rfloor=\min\{y\in\mathbb R_{\ge 0}\colon x-y\in\mathbb Z\}</math>
예를 들어, 다음과 같다.
:<math>\{8.21\}=0.21</math>
:<math>\{-8.21\}=0.79</math>
:<math>\{5\}=0</math>
:<math>\{-7\}=0</math>
분수 부분 함수의 여러 가지 표기법은 다음과 같다.
* <math>\{x\}</math>
* <math>\operatorname{frac}(x)</math>

== 성질 ==
=== 부등식 ===
다음과 같은 부등식들이 성립한다.
:<math>\lfloor x\rfloor\le x<\lfloor x\rfloor+1</math>
:<math>\lceil x\rceil-1<x\le \lceil x\rceil</math>
비슷하게, 다음과 같은 부등식들이 성립한다.
:<math>x-1<\lfloor x\rfloor\le x</math>
:<math>x\le\lceil x\rceil<x+1</math>
:<math>0\le\{x\}<1</math>
[[삼각 부등식]]과 닮은 다음과 같은 부등식들이 성립한다.
:<math>\lfloor x\rfloor+\lfloor y\rfloor\le\lfloor x+y\rfloor\le\lfloor x\rfloor+\lfloor y\rfloor+1</math>
:<math>\lceil x\rceil+\lceil y\rceil-1\le\lceil x+y\rceil\le\lceil x\rceil+\lceil y\rceil</math>
바닥 함수와 천장 함수를 통해 실수 부등식과 [[동치]]인 정수 부등식을 얻을 수 있다. 즉, 임의의 <math>n\in\mathbb Z</math> 및 <math>x\in\mathbb R</math>에 대하여, 다음 두 부등식이 서로 동치이다.
* <math>n>x</math>
* <math>n>\lfloor x\rfloor</math>
마찬가지로, <math>n</math> 및 <math>x</math>에 대하여, 다음 두 부등식이 서로 동치이다.
* <math>n<x</math>
* <math>n<\lceil x\rceil</math>
마찬가지로, <math>n</math> 및 <math>x</math>에 대하여, 다음 두 부등식이 서로 동치이다.
* <math>n\ge x</math>
* <math>n\ge\lceil x\rceil</math>
마찬가지로, <math>n</math> 및 <math>x</math>에 대하여, 다음 두 부등식이 서로 동치이다.
* <math>n\le x</math>
* <math>n\le\lfloor x\rfloor</math>

=== 항등식 ===
천장 함수를 다음과 같이 바닥 함수를 써서 나타낼 수 있다.
:<math>\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}</math>
비슷하게, 다음과 같은 항등식들이 성립한다.
:<math>\lfloor-x\rfloor=
\begin{cases}-\lfloor x\rfloor&x\in\mathbb Z\\-\lfloor x\rfloor-1&x\not\in\mathbb Z\end{cases}</math>
:<math>\lceil-x\rceil=
\begin{cases}-\lceil x\rceil&x\in\mathbb Z\\-\lceil x\rceil+1&x\not\in\mathbb Z\end{cases}</math>
:<math>\{-x\}=
\begin{cases}0&x\in\mathbb Z\\-\{x\}+1&x\not\in\mathbb Z\end{cases}</math>
임의의 정수는 바닥 함수와 천장 함수의 [[고정점]]이다.
:<math>\lfloor n\rfloor=\lceil n\rceil=n\qquad n\in\mathbb Z</math>
바닥 함수와 천장 함수의 정의에 따라, 다음과 같은 항등식들이 성립한다.
:<math>\max\{n\in\mathbb Z\colon n\le x\}=\lfloor x\rfloor</math>
:<math>\min\{n\in\mathbb Z\colon n\ge x\}=\lceil x\rceil</math>
:<math>\min\{n\in\mathbb Z\colon n>x\}=\lfloor x\rfloor+1</math>
:<math>\max\{n\in\mathbb Z\colon n<x\}=\lceil x\rceil-1</math>
바닥 함수와 천장 함수와 분수 부분 함수의 [[함수의 합성|합성]]은 다음과 같다. 특히, 바닥 함수와 천장 함수와 분수 부분 함수는 모두 [[멱등 함수]]이다.
:<math>\lfloor\lfloor x\rfloor\rfloor=\lfloor x\rfloor</math>
:<math>\lceil\lceil x\rceil\rceil=\lceil x\rceil</math>
:<math>\{\{x\}\}=\{x\}</math>
:<math>\lceil\lfloor x\rfloor\rceil=\lfloor x\rfloor</math>
:<math>\lfloor\lceil x\rceil\rfloor=\lceil x\rceil</math>
:<math>\{\lfloor x\rfloor\}=0</math>
:<math>\lfloor\{x\}\rfloor=0</math>
:<math>\{\lceil x\rceil\}=0</math>
:<math>\lceil\{x\}\rceil=\begin{cases}0&x\in\mathbb Z\\1&x\not\in\mathbb Z\end{cases}</math>
임의의 <math>n\in\mathbb Z</math> 및 <math>x\in\mathbb R</math>에 대하여, 다음과 같은 항등식들이 성립한다. 특히, 분수 부분 함수는 양의 최소 주기가 1인 [[주기 함수]]이다.
:<math>\lfloor x+n\rfloor=\lfloor x\rfloor+n</math>
:<math>\lceil x+n\rceil=\lceil x\rceil+n</math>
:<math>\{x+n\}=\{x\}</math>
임의의 <math>m,n\in\mathbb Z</math> (<math>n>0</math>) 및 <math>x\in\mathbb R</math>에 대하여, 다음과 같은 항등식들이 성립한다.
:<math>\left\lfloor\frac{x+m}n\right\rfloor=\left\lfloor\frac{\lfloor x\rfloor+m}n\right\rfloor</math>
:<math>\left\lceil\frac{x+m}n\right\rceil=\left\lceil\frac{\lceil x\rceil+m}n\right\rceil</math>
:<math>\biggl\lceil\frac mn\biggr\rceil=\left\lfloor\frac{m+n-1}n\right\rfloor</math>
임의의 <math>n\in\mathbb Z^+</math> 및 <math>x,y\in\mathbb R</math>에 대하여, 다음과 같은 항등식들이 성립한다.
:<math>\lfloor\lfloor x/y\rfloor/n\rfloor=\lfloor x/(yn)\rfloor</math>
:<math>\lceil\lceil x/y\rceil/n\rceil=\lceil x/(yn)\rceil</math>

=== 합 공식 ===
임의의 <math>n\in\mathbb Z^+</math> 및 <math>x\in\mathbb R</math>에 대하여, 다음과 같은 합 공식이 성립한다. 이를 '''[[에르미트 항등식]]'''이라고 한다.
:<math>\lfloor nx\rfloor=\lfloor x\rfloor+\left\lfloor x+\frac 1n\right\rfloor+\cdots+\left\lfloor x+\frac{n-1}n\right\rfloor</math>
:<math>\lceil nx\rceil=\lceil x\rceil+\left\lceil x-\frac 1n\right\rceil+\cdots+\left\lceil x-\frac{n-1}n\right\rceil</math>
특히, <math>x=m/n</math> (<math>m\in\mathbb Z</math>)인 경우 다음과 같다.
:<math>\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}</math>
특히, <math>n=2</math>인 경우 다음과 같은 항등식을 유도할 수 있다.
:<math>m=\biggl\lfloor\frac m2\biggr\rfloor+\biggl\lceil\frac m2\biggr\rceil</math>
임의의 <math>m,n\in\mathbb Z^+</math> 및 <math>x\in\mathbb R</math>에 대하여, 다음이 성립한다.
:<math>\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</math>
즉, 이러한 합 공식은 <math>m,n</math>의 순서와 무관하다. 특히, <math>x=0</math>인 경우 합이 다음과 같이 주어진다.
:<math>\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</math>
특히, <math>m,n</math>이 [[서로소 정수|서로소]]인 경우 (즉, <math>\gcd\{m,n\}=1</math>인 경우) 다음과 같다.
:<math>\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</math>

=== 푸리에 급수 ===
분수 부분 함수는 1-[[주기 함수]]이며, 그 [[푸리에 급수]]는 다음과 같다.
:<math>\{x\}=\frac 12-\frac 1\pi\sum_{n=1}^\infty\frac{\sin(2n\pi x)}n\qquad x\not\in\mathbb Z</math>
바닥 함수와 천장 함수는 주기 함수가 아니므로, 이들의 푸리에 급수는 균등 수렴하지 않는다. 바닥 함수와 천장 함수는 조각마다 일차 함수이며, 분수 부분 함수는 조각마다 상수 함수이다. 이 셋의 불연속점 집합은 모두 정수 집합이다.

== 응용 ==
=== 정수 부분·분수 부분 ===
실수 <math>x</math>의 정수 부분은 <math>\lfloor x\rfloor</math>이며, 분수 부분은 <math>\{x\}</math>이다. 분수 부분은 소수 부분이라 하기도 한다. 예를 들어, 다음과 같다.
:<math>\lfloor 2.34\rfloor=2</math>
:<math>\{2.34\}=0.34</math>
[[컴퓨터 과학]]에서는 정수 부분과 분수 부분을 조금 다르게 정의하기도 한다. 예를 들어, 다음과 같은 변형된 정수 부분 함수와 분수 부분 함수가 쓰인다.
:<math>\operatorname{ip}(x):=\sgn(x)\lfloor|x|\rfloor=
\begin{cases}\lfloor x\rfloor&x\ge 0\\\lceil x\rceil&x<0\end{cases}</math>
:<math>\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}</math>

=== 내림·올림 ===
{{본문|올림과 버림}}
실수 <math>x</math>를 정수로 '''[[내림]]'''한 값은 <math>\lfloor x\rfloor</math>이며, 정수로 '''올림'''한 값은 <math>\lceil x\rceil</math>이다. [[컴퓨터 과학]]에서는 변형된 내림·올림이 쓰이기도 한다. 즉, 실수 <math>x</math>를 정수로 내림(올림)한 값을 <math>\operatorname{ip}(x)</math>로 정의한다.

=== 반올림 ===
실수 <math>x</math>를 정수로 [[반올림]]한 값은 <math>\lfloor x+0.5\rfloor</math>이다. 예를 들어, 다음과 같다.
:<math>\lfloor 2.34+0.5\rfloor=2</math>
:<math>\lfloor 7.5+0.5\rfloor=8</math>
컴퓨터 과학에서는 반올림의 여러 가지 변형이 사용되는데, 이들은 [[반정수]]의 경우를 달리 정의하며, 그 밖의 경우는 원래의 반올림과 일치한다. 원래의 반올림은 반정수를 비교적 큰 정수로 근사한다. 반정수를 비교적 작은 정수로 근사하는 반올림은 <math>x\mapsto\lceil x-0.5\rceil</math>이며, 반정수를 절댓값이 비교적 큰 정수로 근사하는 반올림은 <math>x\mapsto\sgn(x)\lfloor|x|+0.5\rfloor</math>이며, 반정수를 절댓값이 비교적 작은 정수로 근사하는 반올림은 <math>x\mapsto\sgn(x)\lceil|x|-0.5\rceil</math>이다. 또한, '''최근 정수 함수'''(最近整數函數, {{llang|en|nearest integer function}})라고 불리는 다음과 같은 함수는 반정수를 짝수로 근사하는 반올림 함수이다.
:<math>\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}</math>

=== 나머지 있는 나눗셈 ===
두 정수 <math>m,n\in\mathbb Z</math> (<math>n\ne 0</math>)의 [[나머지 있는 나눗셈]]의 결과를 바닥 함수를 통해 나타낼 수 있다. 즉, 몫은
:<math>\biggl\lfloor\frac mn\biggr\rfloor</math>
이며, 나머지는
:<math>m-\biggl\lfloor\frac mn\biggr\rfloor n</math>
이다.

=== 자릿수 ===
<math>b</math>진법에서 정수 <math>n</math>의 [[자릿수]]는
:<math>\lfloor\log_b|n|\rfloor+1=\lceil\log_b(|n|+1)\rceil</math>
이다.

=== 계승의 소인수 분해 ===
양의 정수 <math>n</math> 및 [[소수 (수론)|소수]] <math>p</math>에 대하여, <math>p^e\mid n!</math>인 최대 <math>e</math>는
:<math>\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</math>
이다. 이를 [[르장드르 공식]]이라고 한다.

== 역사 ==
1808년에 [[카를 프리드리히 가우스]]는 [[이차 상호 법칙]]의 세 번째 증명에서 기호 <math>[x]</math>를 사용하여 바닥 함수를 정의하였다.<ref>Lemmermeyer, Franz (2000), Reciprocity Laws: from Euler to Eisenstein, Berlin: Springer, pp.&nbsp;10, 23., {{ISBN|3-540-66957-4}}</ref> 이 기호는 1962년에 [[케네스 아이버슨]]이 《프로그래밍 언어》(''A Programming Language'')라는 책에서 바닥 함수와 천장 함수라는 용어를 정의하고 기호로 각각 <math>\lfloor x\rfloor </math>와 <math>\lceil x \rceil </math>로 나타낼 때까지 표준 형태였다.<ref>Iverson, Kenneth E. (1962), A Programming Language, Wiley, p.&nbsp;12.</ref><ref>Nicholas J. Higham, Handbook of writing for the mathematical sciences, SIAM, p.&nbsp;25., {{ISBN|0-89871-420-6}}</ref> 지금은 두 사람의 기호가 모두 쓰이고 있다.

== 같이 보기 ==
* [[수학 기호]]

== 각주 ==
{{각주}}

== 외부 링크 ==
{{위키공용분류}}
* {{eom|title=Floor function}}
* {{매스월드|id=FloorFunction|title=Floor function}}
* {{매스월드|id=CeilingFunction|title=Ceiling function}}
* {{proofwiki|id=Definition:Floor Function|제목=Definition:Floor function}}
* {{proofwiki|id=Definition:Ceiling Function|제목=Definition:Ceiling function}}
* {{proofwiki|id=Definition:Fractional Part|제목=Definition:Fractional part}}

{{전거 통제}}

[[분류:특수 함수]]
[[분류:수학 표기법]]
[[분류:단항 연산]]