フロア機能
下限は常に負の無限大に向かって下向きに切り捨てられます。これは負の数の場合に特に重要です。
床関数(Floor Function)とは?
床関数(⌊x⌋)は、与えられた数値以下の最大の整数を返します。
床関数の定義
床関数の数学的な定義によれば、⌊x⌋ は n ≤ x となる最大の整数 n を表します。
これは不等式として表現することもできます:n ≤ x < n + 1 (ここで n = ⌊x⌋)。
簡単に言うと、数値に小数部分がある場合、数直線上でその数値より下にある最も近い整数に移動することを意味します。すでに正確な整数である場合は、変更されません。
床関数の記法
床関数の標準的な記法では、上部の横棒がない特殊な括弧 ⌊x⌋ を使用します。
- 床関数の括弧: ⌊x⌋ (上部が欠けた角括弧で、視覚的に「床」に似ています)。
- 天井関数の括弧: ⌈x⌉ (下部が欠けた角括弧で、視覚的に「天井」に似ています)。
床関数の括弧を通常の丸括弧 (x) や標準的な角括弧 [x] と混同しないでください。これらは異なる数学的意味を持ちます。
床関数の仕組み
床関数を適用する際は、数直線上で明確な方向のルールに従います:
入力値から始める
数直線上で与えられた数値を見つけます。
整数を特定する
その数値のすぐ上とすぐ下の整数を確認します。
正確な整数か確認する
入力値がすでに整数である場合は、そのままにします。
最大の整数を選択する
入力値以下の最大の整数を選択します。負の数の場合、床関数は負の無限大に向かって移動することを覚えておいてください。
例
正の数:
- ⌊2.1⌋ = 2
- ⌊2.9⌋ = 2
- ⌊7.01⌋ = 7
整数:
- ⌊4⌋ = 4
負の数:
- ⌊−2.1⌋ = −3
- ⌊−2.9⌋ = −3
「負の無限大に向かって」とはどういう意味ですか?
負の無限大とは数直線上の方向であり、常に左に向かって進みます。床関数を非整数値に適用すると、その値は厳密に左方向に押しやられます。
正の数の場合、左に移動することは絶対値が小さくなることを意味します:
- 2.1 → 2
- 2.9 → 2
負の数の場合、左に移動することはゼロからさらに遠ざかる(負の方向に絶対値が大きくなる)ことを意味します:
- −2.1 → −3
- −2.9 → −3
「下(down)」が何を意味するかを知らずに、床関数を単に「切り捨て(rounding down)」と考えないでください。数学において「下」とは、「ゼロに向かって」ではなく「負の無限大に向かって」を意味します。
負の数における床関数
負の数は、床関数でよく混乱を引き起こします。よくある間違いは、⌊−2.1⌋ が −2 になると想定することです。しかし、⌊−2.1⌋ = −3 です。
なぜでしょうか?それは、「入力値以下の最大の整数を見つける」というルールがあるからです。
数直線上では、−3 は −2.1 より小さいですが、−2 は −2.1 より大きいです。床関数は入力値以下の整数を要求するため、−3 に移動しなければなりません:
したがって、⌊−2.1⌋ = −3
その他の例:
- ⌊−2.9⌋ = −3
- ⌊−3⌋ = −3
整数の床関数
入力がすでに正確な整数である場合、床関数はその値を全く変更しません。
- ⌊1⌋ = 1
- ⌊0⌋ = 0
- ⌊−1⌋ = −1
- ⌊10⌋ = 10
分数と小数の床関数
小数や分数の場合、床関数は実質的に正の数では小数部分を取り除きますが、負の数では次のより小さい整数へと下がります。
分数:
- ⌊7/3⌋ = 2
- ⌊11/4⌋ = 2
- ⌊−7/3⌋ = −3
- ⌊−11/4⌋ = −3
正の小数:
- ⌊1.1⌋ = 1
- ⌊1.5⌋ = 1
- ⌊1.99⌋ = 1
- ⌊3.001⌋ = 3
負の小数:
- ⌊−1.1⌋ = −2
- ⌊−1.99⌋ = −2
- ⌊−3.001⌋ = −4
特定の小数点以下までの床関数
特定の小数点以下の桁数(例:小数点以下2桁)に対して床関数を適用する必要がある場合があります。これはスケーリングという方法で行われます:10の累乗を掛け、床関数を適用し、再度割ります。
- 2.349 を小数点以下2桁にする: ⌊2.349 × 100⌋ / 100 = ⌊234.9⌋ / 100 = 234 / 100 = 2.34
- 2.341 を小数点以下1桁にする: ⌊2.341 × 10⌋ / 10 = ⌊23.41⌋ / 10 = 23 / 10 = 2.3
- 7.999 を小数点以下2桁にする: 7.99
負の数の場合も、値は引き続き負の無限大に向かって移動します:
- −2.341 を小数点以下2桁にする: ⌊−2.341 × 100⌋ / 100 = ⌊−234.1⌋ / 100 = −235 / 100 = −2.35
床関数の例
| 入力 | 床関数 (Floor) | 説明 |
|---|---|---|
| 2.1 | 2 | 2.1 以下の最大の整数は 2 |
| 2.5 | 2 | 2.5 以下の最大の整数は 2 |
| 2.9 | 2 | 2.9 以下の最大の整数は 2 |
| 3 | 3 | 入力はすでに整数 |
| −2.1 | −3 | −2.1 以下の最大の整数は −3 |
| −2.5 | −3 | −2.5 以下の最大の整数は −3 |
| −2.9 | −3 | −2.9 以下の最大の整数は −3 |
| −3 | −3 | 入力はすでに整数 |
床関数 vs 天井関数
天井関数は床関数の正反対です。床関数が常に負の無限大に向かって移動するのに対し、天井関数は常に正の無限大に向かって移動します。
| 入力 | 床関数 (Floor) | 天井関数 (Ceiling) |
|---|---|---|
| 2.3 | 2 | 3 |
| 2.8 | 2 | 3 |
| −2.3 | −3 | −2 |
| −2.8 | −3 | −2 |
| −3 | −3 | −3 |
床関数 vs 四捨五入(丸め)
最も近い値への丸め(四捨五入など)は、最も近い整数を選択します。床関数はどちらの整数が近いかを気にせず、常に指定された数値以下の最大の整数を選択します。
- 2.3: 床関数 → 2 | 四捨五入 → 2
- 2.7: 床関数 → 2 | 四捨五入 → 3
- −2.3: 床関数 → −3 | 四捨五入 → −2
- −2.7: 床関数 → −3 | 四捨五入 → −3
床関数 vs 整数部分
整数部分の関数は単に数値の整数桁を抽出し、小数を切り捨てます。これにより値は厳密にゼロに向かって移動し、負の数の場合に重要な違いが生じます。
- 2.7: 床関数 = 2 | 整数部分 = 2
- −2.7: 床関数 = −3 | 整数部分 = −2
これにより、床関数が単なる切り捨てではなく、方向性のある操作(負の無限大に向かう)であるという違いが強調されます。
床関数 vs ゼロ方向への切り捨て(Truncation)
ゼロ方向への切り捨ては、単に数値の小数部分を切り落とし(削除し)、値を厳密にゼロに向かって移動させます。床関数は負の無限大に向かって移動します。この違いは負の数で重要になります。
- 2.8: 床関数 → 2 | ゼロ方向切り捨て → 2
- −2.8: 床関数 → −3 | ゼロ方向切り捨て → −2
床関数 vs 丸め下げ(Round Down)
「丸め下げ(round down)」という用語は曖昧な場合があります。厳密な数学的用語では、「丸め下げ」は通常、床関数(負の無限大に向かって移動)と同義です。しかし、金融などの一部の文脈では、「丸め下げ」はゼロ方向への切り捨てを意味します。
例えば −2.7 の場合、床関数では −3 になりますが、ゼロ方向への切り捨てでは −2 になります。
床関数のグラフ
床関数 y = ⌊x⌋ のグラフは、階段状のグラフ(階段関数とも呼ばれます)です。整数の間のすべての値に対して完全に平坦であり、各整数で上にジャンプします。
n ≤ x < n + 1 となる各整数 n について、床関数の値は正確に n になります。
- 0 ≤ x < 1 の場合、⌊x⌋ = 0
- 1 ≤ x < 2 の場合、⌊x⌋ = 1
- −1 ≤ x < 0 の場合、⌊x⌋ = −1
グラフ上では、各水平な段の左端は黒丸(その整数を含むことを意味する)であり、右端は白丸(次の整数を含まないことを意味する)になります。
床関数の公式
床関数は、集合の記法において次のように正式に定義されます:
わかりやすく言うと、この公式は「x 以下のすべての整数(ℤ)の集合を見て、その中から最大(max)の値を選びなさい」という意味です。
床関数の性質
- 整数に対する恒等性: x が整数の場合、⌊x⌋ = x。
- 範囲: 非整数 x に対して、x − 1 < ⌊x⌋ ≤ x。
- 天井関数との対称性: ⌊x⌋ = −⌈−x⌉。
- 整数の加算: 任意の整数 n に対して、⌊x + n⌋ = ⌊x⌋ + n。
床関数はどこで使われますか?
床関数は、部分的なアイテムを数えたり使用したりできない実世界のシナリオにおいて非常に重要です。
- 完成した単位: 29個のアイテムがあり、完全なグループを作るのに10個のアイテムが必要な場合、完全に満たされたグループの数は ⌊29 / 10⌋ = 2 です。
- コンピュータサイエンス: 配列のインデックスを見つけることや、浮動小数点の座標を画面上のピクセル座標に変換すること。
- リソースの割り当て: 与えられた予算で何時間完全にサービスを利用できるかを決定すること。
- データ処理: 特定の時間単位(例:ログを時間ごとにまとめる)にデータをグループ化すること。
プログラミングにおける床関数
Pythonにおける床関数
math.floor(2.7) # 2を返す
math.floor(-2.7) # -3を返す
JavaScriptにおける床関数
Math.floor(-2.7); // -3を返す
Javaにおける床関数
Math.floor(-2.7); // -3.0を返す
C#における床関数
Math.Floor(-2.7); // -3を返す
Excelにおける床関数
Excelには複数の床関数があります。FLOOR.MATH(数値, 基準値, モード) は最も堅牢で、デフォルトで常に負の無限大に向かって丸めます。FLOOR(数値, 基準値) は符号が一致しない場合、負の数でエラーになることがあります。
数学における床関数
基本的な算術を超えて、床関数は高度な数学で頻繁に利用されます:
- 整数論: 素数や割り切れること(整除性)に関する公式で使用されます。
- モジュラ演算: モジュロ演算はしばしば a mod n = a − n × ⌊a / n⌋ として定義されます。
- 離散数学: 連続領域の関数を離散的な整数値関数に変換します。
よくある床関数の間違い
- 床関数とゼロ方向切り捨ての混同: ゼロ方向切り捨ては小数を切り落とします(ゼロに向かって移動)。床関数は負の無限大に向かって移動します。正解: 負の数の場合、床関数は絶対値を大きくし、ゼロ方向切り捨ては絶対値を小さくします。
- 負の数が負の無限大に向かって移動することを忘れる: 多くの人が ⌊−2.7⌋ を −2 だと勘違いします。正解: それは −3 です。
- 床関数と天井関数の混同: 正解: 床関数は数直線を左に進み、天井関数は右に進みます。
- 最も近い値への丸めが必要な時に床関数を使う: 床関数は最も近い整数を無視します。正解: 2.9に最も近い値が必要な場合は、床関数ではなく四捨五入などの丸めを使って 3 を得てください。
床関数 クイックリファレンス
床関数は、入力値以下の最大の整数を返します。
| 入力 | 床関数 (Floor) |
|---|---|
| 2.1 | 2 |
| 2.9 | 2 |
| 3 | 3 |
| −2.1 | −3 |
| −2.9 | −3 |
| −3 | −3 |
床関数の練習問題
これらの例で床関数の理解を試してください。質問をクリックすると答えが表示されます。
⌊2.4⌋ = ?
⌊7.99⌋ = ?
⌊−2.4⌋ = ?
⌊−7.99⌋ = ?
⌊5⌋ = ?
⌊0.9⌋ = ?
⌊−0.1⌋ = ?
⌊29 / 10⌋ = ?
5.129を小数点以下2桁にする(床関数)?
−5.121を小数点以下2桁にする(床関数)?
よくある質問(FAQ)
床関数計算機とは何ですか?
床関数計算機は、与えられた数値以下の最大の整数を計算します。例えば、4.7の床関数は4であり、−4.7の床関数は−5です。
床関数はゼロ方向への切り捨て(Truncate)と同じですか?
いいえ。床関数は負の無限大に向かって移動しますが、切り捨てはゼロに向かって移動します。
負の数に対する床関数はどのように機能しますか?
負の数に余り(小数部分)がある場合、より小さな負の整数(負の方向に大きな値)になります。
床関数はどのような時に便利ですか?
床関数は、保守的な下限の計算に役立ちます。
床関数と天井関数を素早く比較することはできますか?
はい。関連リンクから、同じ入力値を両方の方法でテストできます。