| この項目では、数学関数について説明しています。プログラミング言語の関数については「端数処理」をご覧ください。 |
床関数(ゆかかんすう、英: floor function)と天井関数(てんじょうかんすう、英: ceiling function)は、実数に対してそれぞれ、自身以下の最大、自身以上の最小の整数を出力する関数である。
英語の floor, ceiling といった名称と、, という記法は、プログラミング言語 APL の元となる A Programming Language という本の中でケネス・アイバーソンによって1962年に導入された[1]。
床関数と天井関数の間には
の関係があるため、どちらで表しても本質的には同様となる。
床関数は、実数 x に対して x 以下の最大の整数と定義され、
などと書かれる。3番目の記号はガウス記号と呼ばれる。カール・フリードリヒ・ガウスが7つの証明を示した平方剰余の相互法則の3番目の証明に用いた(1808年)ことに由来する[2][3]。日本、中国、ドイツなどでよく使われている。日本の高校数学や大学入試ではガウス記号が使われることがほとんどである。
床関数の定義を数式で表すと次のようになる:
実数 x に対し、 を整数部分、 を小数部分と呼ぶ。整数部分は整数、小数部分は 0 以上 1 未満である。小数部分は x mod 1 や {x} とも書かれる。例えば、入力値が0以上や整数なら以下のようになる:
n を任意の整数とすると、
(π は円周率、e はネイピア数)
なお、入力値が負非整数の場合は、整数部分・小数部分は小数表示のそれぞれ小数点以上・以下の部分とならないことに注意する必要がある:
- ( は−1, は0.7ではない)
−1.2 の整数部分を −1 と定義する流儀(「0への丸め」)もあるが一般的ではない。
正の有理数の帯分数表示は、この整数部分と小数部分(真分数)の和分解への表示である。
床関数と密接に関係しているのが天井関数である。天井関数は実数 x に対して x 以上の最小の整数と定義され、
などと書かれる。これを数式で表すと次のようになる:
例えば、以下のようになる。
n を任意の整数とすると、
以下 x は任意の実数とする。
- は整数
であるが、上記2つが床関数を特徴付ける。
同様に、天井関数は
- は整数
によって特徴付けられる。
床関数と天井関数の関係は、x が整数、非整数であるかによってそれぞれ
- は 0 か 1
となる。床関数と天井関数の基本不等式を併せると
- 任意の整数 n に対し、
床関数と天井関数は互いに他方を表せる:
- 床関数・天井関数は冪等である:
- 任意の整数 n に対し、
- .
- 床関数と天井関数は広義増加である:
床関数・天井関数は、区分的に定数関数であり、整数点(すなわち、整数となる x)で不連続であるが半連続(床関数は上半連続、天井関数は下半連続)である。床関数・天井関数の非整数点での微分係数が存在し、0 である。
- x が整数でないとき、床関数と天井関数は次のようにフーリエ級数展開できる:
- 床関数と天井関数の平均は次のようにフーリエ級数展開できる:
- x が整数、n が正の整数のとき、次の式が成り立つ。
- n が整数のとき、n ≤ x と は同値である。意匠を凝らした言い方では、床関数はガロア接続の片翼を担っており、整数を実数へ埋め込む関数の上随伴である。
- 床関数を用いると、いくつかの素数生成式を作ることができる(ただしこれらは実際の計算には役立たない)。1つの例として、n番目の素数 pn は
- エルミートの恒等式 (Hermite’s identity):実数 a, 正の整数 n に対し、
- 互いに素である正の整数 m, n に対し、次の式が成り立つ[4]:
- 自然数 n に対し、n の 1 以外の正の約数の個数を an とすると、
- (オンライン整数列大辞典の数列 A002541)
- レイリーの定理は、1 より大きい無理数が、床関数を用いて自然数の集合を2つに分ける方法を表している。
- ワイソフのゲーム(2山の片方からまたは、両方から同数ずつ取る石取りゲーム)の後手必勝形は
- (n は 0 以上の整数、φ は黄金比)
- 正の整数 k を n進法で表すと、 桁となる。
- ルジャンドルの公式:自然数 n の階乗が素数 p で(整数の範囲で)割り切れる回数は
- 正n角形(n は3以上の自然数)の対角線の長さの種類は だけある。
実数 x ≥ 0 に制限すると、床関数・天井関数とは小数第1位での切り捨て・切り上げである。これを利用して、位取り記数法表示での任意の位での切り捨てや四捨五入を床関数で表すことができる。
- 実数 x の小数点以下を四捨五入した値は、次の式で表される:
以下十進法表示とする。実数 x ≥ 0 に対して、
- 10nの位での切り捨ては
- 小数第n位での切り捨ては
- 10nの位での四捨五入は
- 小数第n位での四捨五入は
床関数は 、天井関数は と上下の欠けた角括弧で表される。これらは、LaTeX では \lfloor
, \rfloor
, \lceil
, \rceil
と書かれる。Unicode では U+2308
から U+230B
に割り当てられている。
記号 | Unicode | JIS X 0213 | 文字参照 | 名称 |
⌈ | U+2308 | - | ⌈
⌈
⌈ | LEFT CEILING |
⌉ | U+2309 | - | ⌉
⌉
⌉ | RIGHT CEILING |
⌊ | U+230A | - | ⌊
⌊
⌊ | LEFT FLOOR |
⌋ | U+230B | - | ⌋
⌋
⌋ | RIGHT FLOOR |
- Iverson, Kenneth E. (1962) (English), A Programming Language, Wiley, ISBN 0-471-43014-5, OCLC 523128
- Gauss, Carl Friedrich (1808) (Latin), Theorematis arithmetici demonstratio nova, 16, Commentations societatis regiae scientiarum Gottingensis, pp. 5-8, https://gdz.sub.uni-goettingen.de/id/PPN23599524X?tify=%7B%22pages%22:%5B9%5D%7D
- J.C.F.ガウス 著、高瀬正仁 訳『ガウス 数論論文集』筑摩書房〈ちくま学芸文庫〉、2012年7月10日。ISBN 978-4-480-09474-2。