2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: 0/0=?
Сообщение26.05.2020, 20:38 
Аватара пользователя


11/12/16
14035
уездный город Н
tonyk_av в сообщении #1465300 писал(а):
Разумность варианта б) подтвердил EUgeneUS (математик!).

Я не математик. И ничего подобного не подтверждал. Попрошу без грязи!

-- 26.05.2020, 20:39 --

tonyk_av в сообщении #1465300 писал(а):
Встречались 2 варианта поведения в ситуации целочисленного деления ноль на ноль:
а) возвращался 0;
б) возвращался 1.


Где встречались? В стандартах? Тогда приведите ссылки. Или может в наколенных поделках школьников?

 Профиль  
                  
 
 Re: 0/0=?
Сообщение26.05.2020, 20:41 
Заслуженный участник
Аватара пользователя


16/07/14
9202
Цюрих
tonyk_av в сообщении #1465300 писал(а):
математикам
tonyk_av в сообщении #1465300 писал(а):
возвращался
Как математик (ну условно математик, человек с какими-то обрывочными воспоминаниями о математическом образовании) могу сказать, что нормальные функции ничего не "возвращают", это же просто множества определенного вида, они ничего не брали, чтобы возвращать.
Есть куча функций, обозначаемых значком $/$. Наверное самая часто используемая - это функция $\mathbb {R} \times (\mathbb R \setminus \{0_{\mathbb R}\}) \to \mathbb R$. Значком $0$ тоже обозначается куча всего. Один из популярных вариантов - нейтральный по сложению элемент $\mathbb R$ (который я выше обозначил $0_{\mathbb R}$). Как несложно заметить, при таких определениях пары вида $\langle 0, 0\rangle$ не входят в область определения функции $/$, так что говорить о том, "сколько будет $0 / 0$" ничуть не более осмысленно, чем "сколько будет $\text{напильник} - \text{желтые ботинки}$". Естественно что можно заранее договориться, что мы значком $/$ будем обозначать какую-то другую функцию и сказать, чему она равна на паре $\langle 0, 0\rangle$ [правда читатели могут обидеться на такое обозначение, но это уже их проблемы].

Как программист, я могу сказать, что в разных ситуациях деление на $0 / 0$ разумно обрабатывать разными способами.
tonyk_av в сообщении #1465300 писал(а):
Я ж ведь не просто так спросил
А по-моему, просто так. Если нет - то что вы собираетесь делать с ответом?

 Профиль  
                  
 
 Re: 0/0=?
Сообщение26.05.2020, 20:43 
Аватара пользователя


11/12/16
14035
уездный город Н
tonyk_av в сообщении #1465300 писал(а):
Интересует результат с точки зрения математики.

Вам 100500 раз ответили, что с точки зрения математики "ноль на ноль - это неопределенность", корректно выразить каким-то определенным числом нельзя. Поэтому остается вопрос только и исключительно "программистский" - как выразить эту неопределенность в данном конкретном случае.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение26.05.2020, 22:36 
Заслуженный участник


27/04/09
28128
tonyk_av в сообщении #1465300 писал(а):
И не нужно привязываться к языкам и платформам, важно было знать, что по этому вопросу скажут именно математики.
Они скажут, что какое число ни выдать — всё равно будут ошибки в таком коде, который использует эту функцию деления и не проверяет, установился ли флаг (или не проверяет делитель). Изредка удобно доопределять нулём, изредка единицей, да. Но для весьма специфичных контекстов. Если вы точно знаете все места, где будет использоваться деление, и что их не будет в будущем сильно больше и других, то может быть можно что-то предложить (в ответ на их перечисление!), но в общем-то случае проку от любого значения перед остальными возможными — ноль.

-- Ср май 27, 2020 00:39:26 --

(Я тоже «человек с какими-то обрывочными воспоминаниями о математическом образовании», хотя в обоих случаях это оценка по-моему скромновата.)

-- Ср май 27, 2020 00:47:29 --

Вообще эта проблема ничуть не менее специфичная, чем общая «что делать, если API нашей библиотеки не позволяет ограничить вызов этой штуки с некорректными аргументами, в случае таких вызовов». И предложение разобрать возможные контексты использования штуки — по-моему единственное, что возможно, и в общем случае это неутешительно, потому что они слишком неизвестны или разнообразны. И хорошо хоть флаг можно установить — можно считать, что эта конкретная проблема благодаря этому практически несущественная. Можно даже не писать в спецификации, что именно в таком случае возвращается (какой бы выбор ни сделать), «the result in this case is implementation-dependent» — это плюс к совместимости с возможными новыми версиями или альтернативными реализациями.

-- Ср май 27, 2020 00:49:22 --

Более того может быть даже смысл пригрозить неопределённым поведением. Это ещё более развязывает руки. Но связывает руки в использовании, так что наверно флага и неопределённого результата достаточно.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение29.05.2020, 16:57 


12/07/15
3349
г. Чехов
В программируемых логических контроллерах операции выполняются безопасно.

Деление на ноль любого числа и любое переполнение разрядов интерпретируется как ошибка, результат операции игнорируется. Выход функции ENO устанавливается в false.

А у вас есть ENO?

 Профиль  
                  
 
 Re: 0/0=?
Сообщение29.05.2020, 23:29 


05/05/20
28
Автору вопроса.
Запрет деления на 0 в математике - есть условность, т.к. решением уравнения 0а=b является любое число (Да простят профессионалы слесаря КИПиА). Относительно Вашего вопроса. Пусть имеются 2 резервуара(А и В) с независимым переменным расходом некоторой технологической жидкости. Резервуары наполняются от некоторого источника, каждый через свой пропорциональный клапан. Наша задача - поддерживать одинаковый уровень в обоих резервуарах. Это может быть реализовано посредством Вашей функции. Пусть a - уровень жидкости в резервуаре A, b - в резервуаре B. Тогда Ka/b - величина сигнала, подаваемого на клапан резервуара B, если a/b>1 и, наоборот, Ka/b - величина сигнала, подаваемого на клапан резервуара A, если a/b<1. Ka/b, как легко догадаться, в жанном случае определяет скорость наполнения ёмкости с меньшим уровнем. Случай a=b=0 соответствует ситуации, когда оба резервуары пусты. Здесь имеем полный произвол в наших действиях: мы можем как полностью открыть оба клапана, чтобы обеспечить наполнение обоих ёмкостей с максимальной скоростью, а можем сформировать сигнал аварии и остановить установку - всё зависит от требований технологического процесса, не более. В общем, выше на это уже толсто Вам намекали, я просто проиллюстрировал задачу простым примером. Сформулируйте задачу конкретнее; желательно указать тип промышленного контроллера, с которым Вы работаете - возможно, смогу Вам деятельно помочь.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение30.05.2020, 00:31 
Заслуженный участник


18/01/15
3237
tonyk_av в сообщении #1465143 писал(а):
Математики! Жду ваших, грамотных, обоснованных, ответов.

Вот ответ математика: делить на ноль нельзя ! И это учат еще в начальной школе. Предел $\sin(x)/x$ --- это одно, равно 1. А $0/0$ --- бессмысленное выражение.

А вообще, пожелание "грамотного, обоснованного ответа" выдает желание автора потроллить. На форуме "делителей на ноль" уже немало было. Кои тролли, а кои на голову больные.

-- 29.05.2020, 23:33 --

tonyk_av в сообщении #1465153 писал(а):
Модератор! Пожалуйста, верни тему к математикам!

Ага, для пущего тролления...

-- 29.05.2020, 23:43 --

А может, с товарища заказчик требует, чтоб его продукт возвращал "правильное" значение $0/0$. Ну, чтоб деньги не платить. Но это уже вопрос юридическо-милицейский...

 Профиль  
                  
 
 Re: 0/0=?
Сообщение31.05.2020, 20:40 


24/01/09
1296
Украина, Днепр
EUgeneUS в сообщении #1465303 писал(а):
tonyk_av в сообщении #1465300 писал(а):
Разумность варианта б) подтвердил EUgeneUS (математик!).

Я не математик.

Поздно!

 Профиль  
                  
 
 Re: 0/0=?
Сообщение31.05.2020, 21:09 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Можно в какой-то мере радоваться, когда причисляют к математикам. А вот если к философам (и особенно после смерти, когда уже ничего не можешь сделать)…

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 17:40 


22/07/20
3
tonyk_av
Какого типа ваши переменные, какой контроллер, какая разрядность?
Вы можете всегда прибавлять к делителю минимальное возможное число, например 0.0000000001, если это некий float.

$\frac{a}{b + 0.00000000001}$
итп.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 20:50 
Заслуженный участник
Аватара пользователя


15/10/08
30/12/24
12599
Одна из немногих тем, где в качестве ответа уместно "А сколько вам надо?"

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 21:59 
Заслуженный участник


20/08/14
11867
Россия, Москва
subsonic
Читайте внимательней тему, ТС уже уточнил что все числа целые, и результат тоже. Разрядность роли не играет вообще.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 22:41 
Заслуженный участник
Аватара пользователя


18/09/14
5069

(Оффтоп)

Утундрий в сообщении #1475263 писал(а):
Одна из немногих тем, где в качестве ответа уместно "А сколько вам надо?"

В картах на подобный случай есть джокер.

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 22:47 
Заслуженный участник


18/01/15
3237
Dmitriy40 в сообщении #1475285 писал(а):
Читайте внимательней тему, ТС уже уточнил что все числа целые, и результат тоже. Разрядность роли не играет вообще.
А первый замечательный предел $(\sin x)/x$ он упомянул в заглавном посте, очевидно, чисто для понту...

 Профиль  
                  
 
 Re: 0/0=?
Сообщение22.07.2020, 23:08 
Заслуженный участник
Аватара пользователя


11/12/05
10078
nongma в сообщении #1465882 писал(а):
решением уравнения 0а=b является любое число
Шо это было? :shock:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group