| определение | ⌊x⌋ = max{n ∈ ℤ : n ≤ x} · ⌈x⌉ = min{n ∈ ℤ : n ≥ x} |
| примеры | ⌊3.7⌋ = 3 · ⌈3.2⌉ = 4 · ⌊−1.5⌋ = −2 · ⌈−1.5⌉ = −1 |
| обозначение | Кнут · «Искусство программирования», 1962 |
| тождество | ⌊a/n⌋ · n + (a mod n) = a |
| парадокс | ⌊x⌋ + ⌊−x⌋ = −1, если x ∉ ℤ · = 0, если x ∈ ℤ |
| связано | натуральные числа · mod · ∑ |
Мост между непрерывным и дискретным.
вещественная прямая непрерывна. алгоритмы работают с целыми. floor и ceiling — переход между мирами.
Математика знает два мира: непрерывный и дискретный. Анализ живёт на вещественной прямой, где между любыми двумя числами бесконечно много других. Алгоритмы работают с целыми — индексами, счётчиками, адресами памяти. Floor и ceiling — операторы перехода между этими мирами.
⌊π⌋ = 3. ⌈π⌉ = 4. Простое округление? Нет — принципиальная операция. Бинарный поиск делит массив пополам: средний индекс = ⌊(left + right) / 2⌋. Если взять ceiling — алгоритм может зациклиться на крайних случаях. Выбор floor против ceiling в коде — не стилистика, а корректность1.
Без floor нет алгоритма. Без алгоритма нет вычисления.
Теория чисел полна floor-выражений. Формула Лежандра: показатель простого p в разложении n! равен ∑k≥1 ⌊n/pk⌋. Сумма ⌊n/k⌋ по k от 1 до n даёт количество пар (a, b), где a делит b и b ≤ n. Решето Эратосфена скрытно считает floor на каждом шаге.
Тождества с floor и ceiling красивы и неочевидны. Для любого вещественного x: ⌊x⌋ + ⌊x + ½⌋ = ⌊2x⌋ — это формула Эрмита для удвоения. ⌊x⌋ + ⌊−x⌋ = 0, если x целое, и −1, если нет2. Пол и потолок несимметричны относительно нуля — потому что числовая прямая дискретизирована несимметрично.
Дробная часть: {x} = x − ⌊x⌋ — всегда в [0, 1). Это то, что остаётся, когда floor выбросил всё целое3. На функции {nα} строится теория равномерного распределения по модулю 1 — фундамент эргодической теории. Один оператор, и из него вырастает целый раздел математики.