В математике функция floor — это функция , которая принимает на вход действительное число x и возвращает наибольшее целое число, меньшее или равное x , обозначаемое ⌊ x ⌋ или floor( x ) . Аналогично, функция ceiling отображает x в наименьшее целое число, большее или равное x , обозначаемое ⌈ x ⌉ или ceil( x ) . [1]
Например, для пола: ⌊2,4⌋ = 2 , ⌊−2,4⌋ = −3 , а для потолка: ⌈2,4⌉ = 3 , и ⌈−2,4⌉ = −2 .
Пол числа x также называется целой частью , целой частью , наибольшим целым числом или целым числом x и исторически обозначался как [ x ] (среди других обозначений). [2] Однако тот же термин, целая часть , также используется для усечения к нулю, что отличается от функции пола для отрицательных чисел.
Для целого числа n ⌊ n ⌋ = ⌈ n ⌉ = n .
Хотя floor( x+1 ) и ceil( x ) создают графики, которые выглядят совершенно одинаково, они не одинаковы, когда значение x является точным целым числом. Например, когда x =2,0001; ⌊2,0001+1⌋ = ⌈2,0001⌉ = 3 . Однако, если x =2, то ⌊2+1⌋ = 3 , в то время как ⌈2⌉ = 2 .
Обозначение
Целая часть числа ( в оригинале partie entière) была впервые определена в 1798 году Адриеном - Мари Лежандром в его доказательстве формулы Лежандра .
Карл Фридрих Гаусс ввел обозначение квадратных скобок [ x ] в своем третьем доказательстве квадратичного закона взаимности (1808). [3] Это оставалось стандартом [4] в математике до тех пор , пока Кеннет Э. Айверсон в своей книге 1962 года «Язык программирования » не ввел названия «пол» и «потолок» и соответствующие обозначения ⌊ x ⌋ и ⌈ x ⌉ . [5] [6] (Айверсон использовал квадратные скобки для другой цели, обозначения скобок Айверсона .) Обе нотации сейчас используются в математике, хотя в этой статье будет использоваться обозначение Айверсона.
В некоторых источниках жирные или двойные скобки ⟦ x ⟧ используются для обозначения пола, а обратные скобки ⟧ x ⟦ или ] x [ — для обозначения потолка. [7] [8]
Дробная часть — это пилообразная функция , обозначаемая { x } для вещественного x и определяемая формулой
{ х } = х − ⌊ х ⌋ [9]
Для всех х ,
0 ≤ { х } < 1 .
Эти символы представлены в Unicode:
U+2308 ⌈ ЛЕВЫЙ ПОТОЛОК ( ⌈, ⌈ )
U + 2309 ⌉ ПРАВЫЙ ПОТОЛОК ( ⌉, ⌉ )
U+230A ⌊ ЛЕВЫЙ ЭТАЖ ( ⌊, ⌊ )
U+230B ⌋ ПРАВЫЙ ЭТАЖ ( ⌋, ⌋ )
В системе набора LaTeX эти символы можно указать с помощью команд и в математическом режиме. LaTeX поддерживает UTF-8 с 2018 года, поэтому символы Unicode теперь можно использовать напрямую. [10] Более крупные версии — и .\lceil, \rceil, \lfloor, \rfloor\left\lceil, \right\rceil, \left\lfloor,\right\rfloor
Определение и свойства
Даны действительные числа x и y , целые числа m и n и множество целых чисел , пол и потолок могут быть определены уравнениями
Поскольку в полуоткрытом интервале длины один содержится ровно одно целое число , для любого действительного числа x существуют уникальные целые числа m и n, удовлетворяющие уравнению
где и также можно рассматривать как определение пола и потолка.
Эквивалентности
Эти формулы можно использовать для упрощения выражений, включающих полы и потолки. [11]
и аналогично для функций потолка и дробной части (все еще для положительных и взаимно простых m и n ),
Поскольку правая часть общего случая симметрична по m и n , это означает, что
В более общем случае, если m и n положительны,
Иногда это называют законом взаимности. [17]
Деление на положительные целые числа приводит к интересному и иногда полезному свойству. Предполагая , что ,
Сходным образом,
Действительно,
имея в виду, что
вторая эквивалентность, включающая функцию потолка, может быть доказана аналогично.
Вложенные подразделения
Для положительных целых чисел n и произвольных действительных чисел m , x : [18]
Непрерывность и рядовые расширения
Ни одна из функций, обсуждаемых в этой статье, не является непрерывной , но все они являются кусочно-линейными : функции , и имеют разрывы в целых числах.
Поскольку ни одна из функций, обсуждаемых в этой статье, не является непрерывной, ни одна из них не имеет разложения в степенной ряд . Поскольку пол и потолок не являются периодическими, они не имеют равномерно сходящихся разложений в ряд Фурье . Функция дробной части имеет разложение в ряд Фурье [19]
для x, не являющегося целым числом.
В точках разрыва ряд Фурье сходится к значению, которое является средним значением его пределов слева и справа, в отличие от функций пола, потолка и дробной части: при фиксированном y и x, кратном y, заданный ряд Фурье сходится к y /2, а не к x mod y = 0. В точках непрерывности ряд сходится к истинному значению.
Использование формулы дает
для x не целое число.
Приложения
Оператор Mod
Для целого числа x и положительного целого числа y операция по модулю , обозначаемая как x mod y , дает значение остатка от деления x на y . Это определение можно распространить на действительные числа x и y , y ≠ 0, по формуле
Тогда из определения функции пола следует, что эта расширенная операция удовлетворяет многим естественным свойствам. В частности, x mod y всегда находится между 0 и y , т.е.
Вторым шагом является использование геометрического аргумента, чтобы показать, что
Объединение этих формул дает квадратичную взаимность в виде
Существуют формулы, которые используют пол для выражения квадратичного характера малых чисел по модулю нечетных простых чисел p : [22]
Округление
Для произвольного действительного числа округление до ближайшего целого числа с удалением в сторону положительной бесконечности задается как ; округление в сторону отрицательной бесконечности задается как .
Если значение критерия разделения не равно 0, то функция округления равна (см. функцию знака ), а округление в сторону четности можно выразить с помощью более громоздкого выражения , которое представляет собой приведенное выше выражение для округления в сторону положительной бесконечности за вычетом показателя целочисленности для .
Округление действительного числа до ближайшего целого значения образует очень простой тип квантователя – равномерный . Типичный ( средне-ступенчатый ) равномерный квантователь с размером шага квантования, равным некоторому значению, может быть выражен как
Для n = 26 это составляет 1096259850353149530222034277.
Факторы факториалов
Пусть n — положительное целое число, а p — положительное простое число. Показатель наивысшей степени p , которая делит n !, задается версией формулы Лежандра [24]
где — способ записи n в системе счисления с основанием p . Это конечная сумма, поскольку этажи равны нулю, когда p k > n .
Последовательность Битти
Последовательность Битти показывает, как каждое положительное иррациональное число приводит к разбиению натуральных чисел на две последовательности с помощью функции пола. [25]
Постоянная Эйлера (γ)
Существуют формулы для постоянной Эйлера γ = 0,57721 56649 ..., которые включают пол и потолок, например [26]
и
Дзета-функция Римана (ζ)
Функция дробной части также появляется в интегральных представлениях дзета-функции Римана . Несложно доказать (используя интегрирование по частям) [27] , что если — любая функция с непрерывной производной в замкнутом интервале [ a , b ],
Положим , что действительная часть s больше 1, а a и b — целые числа, и позволим b стремиться к бесконечности, получим
Эта формула верна для всех s с действительной частью больше −1 (за исключением s = 1, где есть полюс) и в сочетании с разложением Фурье для { x } может быть использована для расширения дзета-функции на всю комплексную плоскость и для доказательства ее функционального уравнения. [28]
При s = σ + it в критической полосе 0 < σ < 1,
В 1947 году ван дер Поль использовал это представление для построения аналогового компьютера для нахождения корней дзета-функции. [29]
Формулы для простых чисел
Функция пола появляется в нескольких формулах, характеризующих простые числа. Например, поскольку равно 1, если m делит n , и 0 в противном случае, то положительное целое число n является простым тогда и только тогда, когда [30]
Можно также дать формулы для получения простых чисел. Например, пусть p n будет n -м простым числом, и для любого целого числа r > 1, определим действительное число α суммой
Тогда [31]
Аналогичный результат заключается в том, что существует число θ = 1,3064... ( константа Миллса ) со свойством
все являются простыми. [32]
Существует также число ω = 1,9287800... со свойством
все являются простыми. [32]
Пусть π ( x ) будет числом простых чисел, меньших или равных x . Из теоремы Уилсона легко вывести , что [33]
Также, если n ≥ 2, [34]
Ни одна из формул в этом разделе не имеет практического применения. [35] [36]
Решенные проблемы
Рамануджан представил эти задачи в журнал Индийского математического общества . [37]
Если n — положительное целое число, докажите, что
Были доказаны некоторые обобщения вышеприведенных тождеств функций пола. [38]
Существуют ли положительные целые числа k ≥ 6, такие, что [39]
Малер доказал, что может быть только конечное число таких k ; ни одно из них не известно. [40]
Реализации на компьютере
В большинстве языков программирования простейший метод преобразования числа с плавающей точкой в целое число не делает пол или потолок, а усечение. Причина этого историческая, так как первые машины использовали дополнение до единицы , а усечение было проще реализовать (пол проще в дополнении до двух ). FORTRAN был определен как требующий такого поведения, и поэтому почти все процессоры реализуют преобразование таким образом. Некоторые считают это неудачным историческим решением по проектированию, которое привело к ошибкам при обработке отрицательных смещений и графики на отрицательной стороне начала отсчета. [ необходима цитата ]
Арифметический сдвиг вправо целого числа со знаком на равен . Деление на степень 2 часто записывается как сдвиг вправо, не для оптимизации, как можно было бы предположить, а потому, что требуется пол отрицательных результатов. Предполагая, что такие сдвиги являются «преждевременной оптимизацией», и заменяя их делением, можно сломать программное обеспечение. [ необходима цитата ]
Многие языки программирования (включая C , C++ , [41] [42] C# , [43] [44] Java , [45] [46] Julia , [47] PHP , [48] [49] R , [50] и Python [51] ) предоставляют стандартные функции для пола и потолка, обычно называемые floorи ceil, или реже ceiling. [52] Язык APL использует ⌊xдля пола. Язык программирования J , продолжение APL, разработанное для использования стандартных символов клавиатуры, использует <.для пола и >.для потолка. [53] ALGOL использует entierдля пола.
В Microsoft Excel функция INTокругляет вниз, а не к нулю, [54] в то время как FLOORокругляет к нулю, что противоположно тому, что делают "int" и "floor" в других языках. С 2010 года FLOORбыло изменено на error, если число отрицательное. [55] Формат файла OpenDocument , используемый OpenOffice.org , Libreoffice и другими, INT[56] и FLOORоба делают floor, и FLOORимеют третий аргумент для воспроизведения более раннего поведения Excel. [57]
^
1) Люк Хитон, Краткая история математической мысли , 2015, ISBN 1472117158 (np) 2) Альберт А. Бланк и др. , Исчисление: Дифференциальное исчисление , 1968, стр. 259 3) Джон В. Уоррис, Хорст Стокер, Справочник по математике и вычислительной науке , 1998, ISBN 0387947469 , стр. 151
↑ Леммермейер, стр. 10, 23.
^ Например, Касселс, Харди и Райт, а также Рибенбойм используют нотацию Гаусса. Грэхем, Кнут и Паташник, а также Крэндалл и Померанс используют нотацию Айверсона.
↑ Айверсон, стр. 12.
↑ Хайэм, стр. 25.
^ Mathwords: Функция пола.
^ Mathwords: Функция потолка
^ Грэм, Кнут и Паташник, стр. 70.
^ "LaTeX News, Issue 28" (PDF; 379 КБ) . Проект LaTeX. Апрель 2018 г. Получено 27 июля 2024 г.
^ Грэм, Кнут и Паташинк, гл. 3
^ Грэм, Кнут и Паташник, стр. 73
^ Грэм, Кнут и Паташник, стр. 85
^ Грэм, Кнут и Паташник, стр. 85 и пример 3.15
^ Грэм, Кнут и Паташник, Пример 3.12
^ Грэм, Кнут и Паташник, стр. 94.
^ Грэм, Кнут и Паташник, стр. 94
^ Грэм, Кнут и Паташник, стр. 71, применяют теорему 3.10 с x/m в качестве входных данных и делением на n в качестве функции
^ Титчмарш, стр. 15, уравнение 2.1.7
^ Леммермейер, § 1.4, Ex. 1.32–1.33
^ Харди и Райт, §§ 6.11–6.13
^ Леммермейер, стр. 25
^ Последовательность OEIS A000522 (Общее число расположений множества с n элементами: a(n) = Sum_{k=0..n} n!/k!.) (См. Формулы.)
^ Харди и Райт, Т. 416
^ Грэм, Кнут и Паташник, стр. 77–78.
^ Эти формулы взяты из статьи Википедии Постоянная Эйлера , в которой их гораздо больше.
^ Титчмарш, стр. 13
^ Титчмарш, стр. 14–15
↑ Крэндалл и Померанс, стр. 391
^ Crandall & Pomerance, Ex. 1.3, стр. 46. Бесконечный верхний предел суммы можно заменить на n . Эквивалентное условие: n > 1 является простым тогда и только тогда, когда .
^ Харди и Райт, § 22.3
^ ab Ribenboim, стр. 186
↑ Рибенбойм, стр. 181
↑ Crandall & Pomerance, Пример 1.4, стр. 46
^ Рибенбойм, стр. 180, говорит, что «Несмотря на нулевую практическую ценность формул... [они] могут иметь некоторое значение для логиков, желающих ясно понять, как различные части арифметики могут быть выведены из различных аксиоматизаций...»
↑ Харди и Райт, стр. 344—345 «Любая из этих формул (или любая подобная) приобрела бы другой статус, если бы точное значение числа α... можно было бы выразить независимо от простых чисел. Вероятность этого, по-видимому, мала, но это нельзя исключить как полностью невозможное».
^ Рамануджан, Вопрос 723, Документы, стр. 332
^ Сому, Сай Теджа; Кукла, Анджей (2022). «О некоторых обобщениях тождеств функций пола Рамануджана» (PDF) . Целые числа . 22 . arXiv : 2109.03680 .
↑ Харди и Райт, стр. 337.
^ Малер, Курт (1957). «О дробных частях степеней рационального числа II». Mathematika . 4 (2): 122–124. doi :10.1112/S0025579300001170.
^ "Справочник C++ по функции floor" . Получено 5 декабря 2010 г. .
^ "C++ reference of ceil function" . Получено 5 декабря 2010 г. .
^ dotnet-bot. "Math.Floor Method (System)". docs.microsoft.com . Получено 28 ноября 2019 г. .
^ dotnet-bot. "Math.Ceiling Method (System)". docs.microsoft.com . Получено 28 ноября 2019 г. .
^ "Math (Java SE 9 & JDK 9)". docs.oracle.com . Получено 20 ноября 2018 г.
^ "Math (Java SE 9 & JDK 9)". docs.oracle.com . Получено 20 ноября 2018 г.
^ "Math (Julia v1.10)". docs.julialang.org/en/v1/ . Получено 4 сентября 2024 г. .
^ "PHP руководство по функции ceil" . Получено 18 июля 2013 г. .
^ "PHP руководство по функции floor" . Получено 18 июля 2013 г. .
^ "R: Округление чисел".
^ "Руководство по Python для математического модуля" . Получено 18 июля 2013 г.
↑ Салливан, стр. 86.
^ "Vocabulary". J Language . Получено 6 сентября 2011 г.
^ "INT function" . Получено 29 октября 2021 г. .
^ "FLOOR function" . Получено 29 октября 2021 г. .
^ "Documentation/How Tos/Calc: INT function" . Получено 29 октября 2021 г. .
^ "Documentation/How Tos/Calc: FLOOR function" . Получено 29 октября 2021 г. .
Ссылки
JWS Cassels (1957), Введение в диофантовы приближения , Cambridge Tracts in Mathematics and Mathematical Physics, т. 45, Cambridge University Press
Крэндалл, Ричард; Померанс, Карл (2001), Простые числа: вычислительная перспектива, Нью-Йорк: Springer , ISBN 0-387-94777-9
Грэм, Рональд Л.; Кнут, Дональд Э.; Паташник, Орен (1994), Конкретная математика , Reading Ma.: Addison-Wesley, ISBN 0-201-55802-5
Штефан Порубский, "Функции округления целых чисел", Интерактивный информационный портал по алгоритмической математике , Институт компьютерных наук Чешской академии наук, Прага, Чешская Республика, получено 24 октября 2008 г.