If
Infinity === Infinity
>> true
и
typeOf Infinity
>> "number"
тогда почему
Infinity / Infinity
>>NaN
а не 1?
If
Infinity === Infinity
>> true
и
typeOf Infinity
>> "number"
тогда почему
Infinity / Infinity
>>NaN
а не 1?
Остерегайтесь любых предположений, которые вы делаете об арифметическом поведении бесконечности.
Если / = 1, то 1 = . В более широком смысле, поскольку 2 = , также должно быть так, что / = 2.
Поскольку он обсуждался с другим ответом, я хотел бы отметить, что уравнение 2 = не означает, что существует несколько бесконечностей. Все счетно бесконечные множества имеют одинаковую мощность. То есть множество целых чисел имеет ту же мощность, что и множество нечетных чисел, даже если во втором множестве отсутствует половина элементов из первого множества. (OTOH, существуют и другие виды "бесконечности", такие как количество элементов множества действительных чисел, но удвоение счетной бесконечности не дает ни одного из них. И возведение ее в квадрат, если уж на то пошло .)
Поскольку в спецификации сказано следующее:
Деление бесконечности на бесконечность дает NaN.
Я не математик, , но даже с этой точки зрения наличие (edit: as Я же сказал, я не математик ;)).1
в результате не имеет смысла. Бесконечности могут быть разными, и только потому, что они равны в JavaScript, это не оправдывает того, чтобы рассматривать их как равные во всех других случаях (или позволять делению возвращать 1
в этом отношении).
Infinity
был бы бесполезен, если бы возвращал false. Рассмотрим var x = Infinity; if( x == Infinity ) ...
- person JJJ; 15.09.2011
Результат математически не определен. К джаваскрипту это не имеет никакого отношения. См. следующее объяснение.
Это узнаваемо из исчисления один! Это неопределенная форма!
DivideByZeroException
, но скажи это моему компилятору.
- person Jon; 15.09.2011
lim(x->0) 1/x = Inf
. Если вы используете стандартную математику, то есть.
- person Hannes Ovrén; 16.09.2011