The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз PyPy 6.0, реализации Python, написанной на языке Python, opennews (??), 27-Апр-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


5. "Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Анончик999999 (?), 27-Апр-18, 00:40 
Вообще, не хорошо сравнивать числа с плавающей точкой. Но вот while test <= 2.0 + sys.float_info.epsilon тоже не срабатывает, хотя должно бы.
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

8. "Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."  +3 +/
Сообщение от какойто другой аноним (?), 27-Апр-18, 01:39 
> хотя должно бы

отчего бы это?
есть несколько аспектов:

во-первых, epsilon - это такое минимальное положительное число, что 1.0 + epsilon != 1.0
т.е. совершенно законно, что 2.0 + epsilon == 2.0

во-вторых, следовательно, оптимисты должны писать не 2.0 + epsilon, а 2.0*(1+epsilon)

в третьих, цепочка операций может накапливать погрешность неожиданным для неопытного человека образом. Конкретно в данном случае абсолютная погрешность суммы равна 2*epsilon, но при суммировании произвольной последовательности чисел довольно просто найти поучительные примеры -

>>> 1./3 + 2./3 - 1

0.0
>>> 1./3 -1 + 2./3

-1.1102230246251565e-16
>>> 2./3 -1 + 1./3

-5.551115123125783e-17

:)

Ответить | Правка | Наверх | Cообщить модератору

9. "Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Анонимчик (?), 27-Апр-18, 02:51 
Вообще-то интересно, как происходит приравнивание float-массивов в NumPy?
Ответить | Правка | Наверх | Cообщить модератору

26. "Релиз PyPy 6.0, реализации Python, написанной на языке Pytho..."  +/
Сообщение от Аноним (-), 27-Апр-18, 15:43 
> Вообще, не хорошо сравнивать числа с плавающей точкой. Но вот while test
> <= 2.0 + sys.float_info.epsilon тоже не срабатывает, хотя должно бы.

Ты на оборудовании с точностью 0.1 мм задаешь величину 2.15 мм.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру