最終更新日:2026年8月14日
fe fe-technology mathematics algorithm
まず結論
「aを超えない最大の整数」とは、a以下で最も大きい整数のことです。
正の小数なら直感的ですが、負の小数では注意が必要です。
3.7
→ 3
-3.7
→ -4
つまり、
小数点以下を単純に消す
のではありません。
FEでは、
aを超えない
= a以下
という定義をそのまま使って判断するのが安全です。
直感的な説明
数直線で考えると分かりやすくなります。
例えば、
3 < 3.7 < 4
なので、3.7を超えない最大の整数は3です。
一方、
-4 < -3.7 < -3
です。
ここで、
-3
は -3.7 より大きいので、条件である
-3.7を超えない
を満たしません。
したがって、
-3.7を超えない最大の整数
→ -4
となります。
定義・仕組み
この考え方は、数学では床関数(floor function)と呼ばれます。
記号では、
⌊a⌋
と表されます。
意味は、
a以下の最大の整数
です。
正の小数の場合
例えば、
a = 6.2
なら、
6 < 6.2 < 7
なので、
⌊6.2⌋ = 6
です。
負の小数の場合
例えば、
a = -6.2
なら、
-7 < -6.2 < -6
です。
-6 は -6.2 より大きいため使えません。
したがって、
⌊-6.2⌋ = -7
です。
「小数点以下を捨てる」と何が違う?
正の数だけ見ると、
6.2 → 6
なので、単純な切捨てと同じように見えます。
しかし負の数では、
-6.2
の小数点以下を単純に消すと、
-6
になります。
一方、床関数では、
-7
です。
したがって、
小数点以下を消す
≠
aを超えない最大の整数
です。
科目Aでどう出る?
科目Aでは、関数の定義を読み取り、式を変形したり具体的な値を代入して判断する問題が出ます。
例えば、
int(a) は、aを超えない最大の整数を返す
と定義されているとします。
さらに、
a = -(b+c)
で、
b:整数
0 < c < 1
とします。
① aを展開する
a = -b - c
です。
-b は整数で、そこから 0<c<1 だけ小さくなっています。
したがって、
-b-1 < a < -b
となります。
② int(a)を考える
a を超えない最大の整数は、
-b-1
です。
よって、
int(a) = -b-1
となります。
③ a-int(a)を求める
a - int(a)
= (-b-c) - (-b-1)
= -b-c+b+1
= 1-c
となります。
つまり、
a - int(a)
→ 1-c
です。
具体例で確認する
文字式が分かりにくいときは、条件を満たす値を入れて確認する方法も有効です。
例えば、
b = 5
c = 0.4
とします。
すると、
a = -(5+0.4)
= -5.4
です。
-5.4を超えない最大の整数は、
-6
なので、
int(a) = -6
です。
したがって、
a - int(a)
= -5.4 - (-6)
= 0.6
です。
一方、
1-c
= 1-0.4
= 0.6
なので一致します。
どんな場面で使う?
床関数の考え方は、
- 数学的なアルゴリズム
- 座標や区間の計算
- ページ番号やグループ番号の算出
- 離散化処理
- 数値を整数区間に分ける処理
などで使われます。
FEでは、実務での用途を深掘りするより、
定義を正確に読む
↓
負の数で間違えない
ことが重要です。
よくある誤解・混同
int(a)なら小数点以下を消せばよい?
問題文の定義によります。
今回のように、
aを超えない最大の整数
と定義されているなら、床関数として考えます。
負の数では、
-3.2 → -4
です。
負の数では0に近い整数を選ぶ?
違います。
見るべきなのは、
aを超えない
という条件です。
例えば、
a = -3.2
なら、
-3 > -3.2
なので -3 は使えません。
「最大」という言葉だけで大きい方を選ぶ?
「aを超えない」という条件が先です。
つまり、
a以下の整数の中で最大
を探します。
文字式が難しいときは代入してよい?
選択問題なら有効です。
条件を満たす簡単な値を入れて、
b = 整数
0 < c < 1
を守ったうえで計算すると、候補を絞りやすくなります。
ただし、記事としては文字式でも導けるようにしておくと理解が深まります。
確認問題(基本情報技術者試験対策)
実数 x に対して、floor(x) は x を超えない最大の整数を返すものとする。
整数 n と 0<d<1 を満たす実数 d に対し、
x = -(n+d)
とする。
x-floor(x) と等しいものはどれか。
- ア. d
- イ. -d
- ウ. 1-d
- エ. d-1
▶ クリックして答えと解説を見る(ここを開く)
正解:ウ
x = -n-d
であり、
-n-1 < x < -n
なので、
floor(x) = -n-1
です。
したがって、
x-floor(x)
= (-n-d)-(-n-1)
= 1-d
となります。
まとめ(試験直前用)
- 「aを超えない最大の整数」= a以下の最大の整数
- 正の小数なら、すぐ左の整数になる
- 負の小数では、より小さい側の整数になる
3.7 → 3-3.7 → -4- 小数点以下を消す処理とは同じではない
- 負の数では数直線で確認すると安全
- 文字式が難しいときは、条件を満たす具体値を代入して確認する
- 「aを超えない」という定義を最優先で読む