null
⌊⌋
оператор · №002
floor и ceiling
⌊x⌋ — наибольшее целое ≤ x · ⌈x⌉ — наименьшее целое ≥ x
определение⌊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 · ∑

эссе · 360 слов · 3 мин

Мост между непрерывным и дискретным.

вещественная прямая непрерывна. алгоритмы работают с целыми. 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 — фундамент эргодической теории. Один оператор, и из него вырастает целый раздел математики.