I J, 0%0
(zero divided by zero) дает 0 в качестве ответа. Однако _%_
(бесконечность, деленная на бесконечность) дает ошибку NaN? Почему он не определен, а 0%0
есть?Почему в J 0% 0 определено, но _% _ дает ошибку NaN?
ответ
Я думаю, что комментарий от Eelvex дает ответ. бесконечность над бесконечностью неопределенна. Неопределенный символ в J равен _.
. Однако это существует только для того, чтобы заботиться о данных, поступающих из внешнего источника, и J-предложения не должны давать _.
в качестве ответа.
Если 0 over 0 определяется как 0, это связано с тем, что оно имеет практическое применение. Таких практических применений для бесконечности над бесконечностью нет.
«Хотя нуль, деленный на ноль, является неопределенным, желательно обеспечить фиксированное отношение для него в среде программирования, чтобы уменьшить количество обстоятельств, когда необходимо прервать выполнение проблемы». Это объяснение Э. МакДоннелла из статьи Zero Divided by Zero.
Проблема с Infinity заключается в том, что это не значение, но оно рассматривается как значение. Если бы Бесконечность была значением, то _%_
был бы Единым, как и типичный случай, когда число делится само по себе. (J реализует 0% 0 как исключение из этого шаблона.) Моя интуиция заключается в том, что J было бы лучше, если бы _%_
вычислялся как разрешающий один, но это не так. Поэтому, хотя я не могу дать ответ на ваш вопрос, я предлагаю, чтобы из математики не было ответа, и никто не может быть найден в J-документации или комментариях.
- 1. Почему Infinity × 0 = NaN?
- 2. Matlab: 0 <NaN = 0
- 3. Javascript Simple Calculation дает NAN или 0
- 4. дважды принимает значение NaN после 0/0
- 5. Почему typeof 1/0 является NaN?
- 6. Почему 0 === -0 истинно, но 1/0 === 1/-0 ложно?
- 7. Почему это всегда дает выход 0 0 0?
- 8. Почему 0 == [], но 0 == false и! [] == false?
- 9. Продолжайте получать NaN вместо 0
- 10. Почему Math.pow (0, 0) === 1?
- 11. почему запрос дает 0 строк
- 12. "getElementsByTagName (...) [0]" не определено?
- 13. почему запрос дает 0 строк
- 14. почему (0 + 0i)^{0} == (нан, нан) в C++
- 15. Angular2 BrowserDomAdapter «: эк (0)» селектор дает ошибку
- 16. Почему Math.round() возвращает 0 для аргументов NaN?
- 17. jQuery 0 вместо Nan
- 18. CALayerInvalidGeometry ', reason:' CALayer bounds содержит NaN: [0 0; nan nan] crash in view
- 19. Почему cout дает выход «nan»?
- 20. Javascript дает NaN ошибку
- 21. Почему! (0 || 1 || 0) - 0?
- 22. getElementsByTagName() [0] не определено
- 23. J функция сортировки: 1 /: 1 возвращает 0
- 24. TypeError: $ (...) [0] не определено
- 25. JavaScript: преобразование NaN в 0
- 26. Как преобразовать NaN в 0?
- 27. Конвертировать поплавок NaN в 0
- 28. 0 делится на 0 Получение NaN (не номер) В Android
- 29. Pandas hashtable with дает ключевую ошибку: 0
- 30. while (string.length> = 0) дает ошибку StringIndexOutOfBoundsException
+1 Sheesh, по крайней мере, это может дать '_.', неопределенный. – MPelletier
Оба должны давать 'NaN' (или' _.'). Однако целесообразно определить '0% 0' как' 0'; для этого нет никаких аналогичных причин для '_% _'. См. [Эссе/Неопределенный] (http://www.jsoftware.com/jwiki/Essays/Indeterminate). – Eelvex