Почему Бесконечность / Бесконечность не 1? - PullRequest
6 голосов
/ 15 сентября 2011

Если

Infinity === Infinity
>> true

и

typeOf Infinity
>> "number"

тогда почему

Infinity / Infinity
>>NaN

а не 1?

Ответы [ 4 ]

11 голосов
/ 15 сентября 2011

Остерегайтесь любых сделанных вами предположений об арифметическом поведении бесконечности.

Если ∞ / ∞ = 1, то 1 × ∞ = ∞.В силу расширения, так как 2 × ∞ = ∞, это также должно быть в случае, когда ∞ / ∞ = 2.

Так как он обсуждался с другим ответом, я хотел бы отметить, что уравнение2 × ∞ = ∞ не означает, что существует множество бесконечностей.Все счетно бесконечные множества имеют одинаковую мощность.Т.е. набор целых чисел имеет ту же мощность, что и набор нечетных чисел, хотя во втором наборе отсутствует половина элементов из первого набора.(OTOH, есть и другие виды"бесконечности", такие как количество элементов множества вещественных чисел, но удвоение счетной бесконечности не дает ни одного из них. И, разумеется, не возводит его в квадрат.)

5 голосов
/ 15 сентября 2011

Поскольку спецификация гласит:

Деление бесконечности на бесконечность приводит к NaN .

Я не математик, , но даже с этой точки зрения, имея 1 в результате, это не имеет смысла.Бесконечности могут быть разными, и только потому, что они равны в JavaScript, не оправдывает обработку их как равных во всех других случаях (или если в этом случае деление возвращает 1). ( edit: какЯ сказал, я не математик;)).

1 голос
/ 15 сентября 2011

Результат математически не определен. Это не имеет ничего общего с JavaScript. См. следующее объяснение .

1 голос
/ 15 сентября 2011

Это узнаваемо по исчислению один! Это неопределенная форма!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...