Ноль в степени нуля , обозначаемый как 0 0 , — это математическое выражение , которое может принимать различные значения в зависимости от контекста. В некоторых областях математики, таких как комбинаторика и алгебра , 0 0 традиционно определяется как 1, поскольку это назначение упрощает многие формулы и обеспечивает согласованность в операциях с экспонентами . Например, в комбинаторике определение 0 0 = 1 согласуется с интерпретацией выбора 0 элементов из множества и упрощает полиномиальные и биномиальные разложения .
Однако в других контекстах, особенно в математическом анализе , 0 0 часто считается неопределенной формой . Это связано с тем, что значение x y , когда и x, и y стремятся к нулю, может привести к разным результатам в зависимости от предельного процесса . Выражение возникает в предельных задачах и может приводить к диапазону значений или расходиться до бесконечности , что затрудняет назначение единого последовательного значения в этих случаях.
Обработка 0 0 также различается в разных языках программирования и программном обеспечении . В то время как многие следуют соглашению о назначении 0 0 = 1 по практическим соображениям, другие оставляют его неопределенным или возвращают ошибки в зависимости от контекста использования, отражая неоднозначность выражения в математическом анализе.
Многие широко используемые формулы, включающие натуральные показатели , требуют, чтобы 0 0 было определено как 1. Например, следующие три интерпретации b 0 имеют такой же смысл для b = 0, как и для положительных целых чисел b :
Все три из них специализируются на выдаче 0 0 = 1 .
При оценке многочленов удобно определять 0 0 как 1 . (Действительный) многочлен — это выражение вида a 0 x 0 + ⋅⋅⋅ + a n x n , где x — неопределенность, а коэффициенты a i — действительные числа . Многочлены складываются почленно и умножаются с применением распределительного закона и обычных правил для экспонент. С помощью этих операций многочлены образуют кольцо R [ x ] . Мультипликативное тождество R [ x ] — это многочлен x 0 ; то есть x 0 умноженное на любой многочлен p ( x ) есть просто p ( x ) . [2] Кроме того, многочлены можно оценить, специализировав x на действительном числе. Точнее, для любого заданного действительного числа r существует единственный унитальный гомоморфизм R -алгебры ev r : R [ x ] → R такой, что ev r ( x ) = r . Поскольку ev r унитальна, ev r ( x 0 ) = 1 . То есть, r 0 = 1 для каждого действительного числа r , включая 0. Тот же аргумент применим к R, замененному любым кольцом . [3]
Определение 0 0 = 1 необходимо для многих полиномиальных тождеств. Например, биномиальная теорема справедлива для x = 0 только если 0 0 = 1 . [4]
Аналогично, кольца степенных рядов требуют , чтобы x 0 был определен как 1 для всех специализаций x . Например, тождества типа и справедливы для x = 0 только если 0 0 = 1 . [5]
Для того чтобы многочлен x 0 определял непрерывную функцию R → R , необходимо определить 0 0 = 1 .
В исчислении правило мощности справедливо для n = 1 при x = 0 только если 0 0 = 1 .
Пределы, включающие алгебраические операции, часто можно вычислить, заменив подвыражения их пределами; если полученное выражение не определяет исходный предел, выражение известно как неопределенная форма . [6] Выражение 0 0 является неопределенной формой: заданы действительные функции f ( t ) и g ( t ), стремящиеся к 0 (по мере того как t приближается к действительному числу или ±∞ ) с f ( t ) > 0 , предел f ( t ) g ( t ) может быть любым неотрицательным действительным числом или +∞ , или он может расходиться в зависимости от f и g . Например, каждый предел ниже включает функцию f ( t ) g ( t ) с f ( t ), g ( t ) → 0 при t → 0 + ( односторонний предел ), но их значения различны:
Таким образом, функция двух переменных x y , хотя и непрерывна на множестве {( x , y ) : x > 0} , не может быть расширена до непрерывной функции на {( x , y ) : x > 0} ∪ {(0, 0)} , независимо от того, как мы определяем 0 0 . [7]
С другой стороны, если f и g являются аналитическими функциями в открытой окрестности числа c , то f ( t ) g ( t ) → 1 при приближении t к c с любой стороны, с которой f положительно. [8] Этот и более общие результаты могут быть получены путем изучения предельного поведения функции . [9] [10]
В комплексной области функция z w может быть определена для ненулевого z путем выбора ветви log z и определения z w как e w log z . Это не определяет 0 w , поскольку нет ветви log z , определенной при z = 0 , не говоря уже о окрестности 0 . [11] [12] [13]
В 1752 году Эйлер в Introductio in analysin infinitorum написал, что a 0 = 1 [14] и прямо упомянул, что 0 0 = 1 . [15] Аннотация, приписываемая [16] Маскерони в издании 1787 года книги Эйлера Institutiones calculi Differentialis [17], предлагала «обоснование»
а также другое более сложное обоснование. В 1830-х годах Либри [18] [16] опубликовал несколько дополнительных аргументов, пытающихся оправдать утверждение 0 0 = 1 , хотя они были далеки от убедительности, даже по стандартам строгости того времени. [19]
Эйлер, устанавливая 0 0 = 1 , отметил, что, следовательно, значения функции 0 x совершают «огромный скачок» от ∞ при x < 0 до 1 при x = 0 и до 0 при x > 0. [14] В 1814 году Пфафф использовал аргумент теоремы сжатия , чтобы доказать, что x x → 1 при x → 0 + . [8]
С другой стороны, в 1821 году Коши [20] объяснил, почему предел x y , когда положительные числа x и y стремятся к 0 , будучи ограничены некоторым фиксированным отношением, может быть сделан принимающим любое значение между 0 и ∞, выбрав отношение соответствующим образом. Он вывел, что предел полной двухпеременной функции x y без указанного ограничения является «неопределенным». С этим обоснованием он перечислил 0 0 вместе с выражениями типа 0/0 в таблице неопределенных форм .
По-видимому, не зная о работе Коши, Мёбиус [8] в 1834 году, основываясь на аргументе Пфаффа, неверно утверждал, что f ( x ) g ( x ) → 1 всякий раз, когда f ( x ), g ( x ) → 0 , когда x приближается к числу c (предположительно, f предполагается положительным вдали от c ). Мёбиус свел дело к случаю c = 0 , но затем допустил ошибку, предположив, что каждое из f и g может быть выражено в виде Px n для некоторой непрерывной функции P, не исчезающей в 0, и некоторого неотрицательного целого числа n , что верно для аналитических функций, но не в общем случае. Анонимный комментатор указал на неоправданный шаг; [21] Затем другой комментатор, подписавшийся просто как «S», привел явные контрпримеры ( e −1/ x ) x → e −1 и ( e −1/ x ) 2 x → e −2 при x → 0 + и выразил ситуацию, написав, что « 0 0 может иметь много разных значений». [21]
Кажется, нет ни одного автора, который бы приписывал 0 0 определенное значение, отличное от 1. [22]
Стандарт IEEE 754-2008 с плавающей точкой используется при проектировании большинства библиотек с плавающей точкой. Он рекомендует ряд операций для вычисления степени: [25]
pown
(показатель степени которого является целым числом) обрабатывает 0 0 как 1 ; см. § Дискретные показатели степени.pow
(чье намерение состоит в том, чтобы вернуть результат, отличный от NaN , когда показатель степени является целым числом, например pown
) обрабатывает 0 0 как 1 .powr
обрабатывает 0 0 как NaN (не число) из-за неопределенной формы; см. § Непрерывные показатели.Вариант pow
вдохновлен функцией pow
из C99 , в основном для совместимости. [26] Он полезен в основном для языков с единственной функцией мощности. Варианты pown
и powr
были введены из-за противоречивого использования функций мощности и различных точек зрения (как указано выше). [27]
Стандарты C и C++ не определяют результат 0 0 (может возникнуть ошибка домена). Но для C, начиная с C99 , если поддерживается нормативное приложение F, результат для вещественных типов с плавающей точкой должен быть 1, поскольку существуют важные приложения, для которых это значение более полезно, чем NaN [28] (например, с дискретными показателями); результат для сложных типов не указан, даже если поддерживается информативное приложение G. Стандарт Java , [29] метод .NET Framework , [30] Julia и Python [31] [32] также рассматривают 0 0 как 1. Некоторые языки документируют, что их операция возведения в степень соответствует функции из математической библиотеки C ; это касается оператора Lua [33] и оператора Perl [34] (где явно указано, что результат зависит от платформы). System.Math.Pow
pow
^
**
0**0
R , [35] SageMath , [36] и PARI/GP [37] оценивают x 0 до 1 . Mathematica [38] упрощает x 0 до 1 , даже если на x не наложено никаких ограничений ; однако, если 0 0 вводится напрямую, это рассматривается как ошибка или неопределенность. Mathematica [38] и PARI/GP [37] [39] дополнительно различают целые и плавающие значения: если показатель степени равен нулю целочисленного типа, они возвращают 1 типа основания; возведение в степень с плавающей точкой, имеющей значение ноль, рассматривается как неопределенная, неопределенная или ошибочная.
Уникальный мононом степени
0
- это единый элемент
A
[(
X
i
)
i
∈
I
]
; на l'identify souvent à l'élement unité
1
de
A
Некоторые учебники оставляют величину 0 0 неопределенной, потому что функции x 0 и 0 x имеют разные предельные значения, когда x уменьшается до 0. Но это ошибка. Мы должны определить x 0 = 1 для всех x , если теорема о биноме должна быть справедливой, когда x = 0 , y = 0 и/или x = − y . Теорема о биноме слишком важна, чтобы ее произвольно ограничивать! Напротив, функция 0 x совершенно не важна.
В общем случае предел φ ( x )/ ψ ( x ) при x = a в случае, если пределы обеих функций существуют, равен пределу числителя, делённому на знаменатель. Но что происходит, когда оба предела равны нулю? Деление ( 0/0 ) тогда становится бессмысленным. Такой случай известен как неопределённая форма. Другими такими формами являются ∞/∞ , 0 × ∞ , ∞ − ∞ , 0 0 , 1 ∞ и ∞ 0 .
Поскольку log(0) не существует, 0 z не определено. Для Re( z ) > 0 мы определяем его произвольно как 0 .
Для z = 0 , w ≠ 0 , мы определяем 0 w = 0 , в то время как 0 0 не определено.
... Начнем с
x
= 0.
Здесь
x
x
не определено.
Python определяет
pow(0, 0)
и
0 ** 0
как
1
, как это принято в языках программирования.
Исключительные случаи следуют приложению 'F' стандарта C99, насколько это возможно. В частности,
pow(1.0, x)
и
pow(x, 0.0)
всегда возвращают 1.0, даже если
x
равен нулю или
NaN
.
и
всегда равны 1.
1 ^ y
y ^ 0
Для согласованности с Python и MPFR 0^0 в Sage определено как 1.
Существует также оператор возведения в степень ^, когда показатель степени имеет тип integer; в противном случае он рассматривается как трансцендентная функция. ... Если показатель степени
n
является целым числом, то точные операции выполняются с использованием методов бинарного (сдвиг влево) возведения в степень. ... Если показатель степени
n
не является целым числом, возведение в степень рассматривается как трансцендентная функция
exp(
n
log
x
)
.