Чему равен остаток от деления на ноль x mod 0=?

Тема в разделе "WASM.HEAP", создана пользователем s_d_f, 20 авг 2011.

  1. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Ребята, прошу меня извинить. Уже думаю об одном, пишу о другом.
    Введём пространство, включающее: R, -inf, +inf, -1/inf, + 1/inf, а также все числа, получающиеся путём применения элементарных математических операций с inf.
    Тогда #138 действительно имеет смысл, если вместо "иррационального" читать как названное выше мною множество.
     
  2. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    SadKo, в этом случае непрерывность функции теряет всякий смысл. Для того, чтобы функция была "непрерывной по SadKo" в точке a, она должна быть лишь определена в этой точке. То есть такая вот функция [​IMG] будет непрерывной. Что толку с такого определения непрерывности?

    Мало того, такое определение вообще некорректно, т.к. нельзя с БМ величинами работать как с обычными числами. Вот пример

    n = 0,(9)
    10 * n = 9,(9)
    10 * n - n = 9 => n = 1

    n = 1 или n = 0,(9)?

    У Вас получается подобный парадокс когда f от конечного аргумента стремится к бесконечности, а от бесконечно малого, вдруг, становится нулём.
     
  3. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    А кто сказал, что классическое определение непрерывности здесь подойдёт?
    Она не должна быть лишь определена в этой точке.
    Мне это видится таким образом:
    Функция определена в точке x0: f(x0) = A
    Условие непрерывности:
    lim{x->x0-0}f(x) = A
    lim{x->x0+0}f(x) = A
     
  4. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    SadKo, с вашим определением функция, приведённая в #142 является непрерывной. Вы согласны?
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Нет, предел слева не равен пределу справа, несмотря на то, что функция определена в точке a.
     
  6. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    Мало того, не совсем понятно, как это Вы так предел считаете.
    1/(0 + 1/inf) = inf, а не ноль.
    1/(0 - 1/inf) = -inf, а не ноль.
     
  7. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    SadKo
    А кто сказал, что здесь вообще какое-то определение из общепринятых подойдёт? Числа, предела, непрерывности в точке...
    Ах ладно. Меняйте определения, стройте новую теорию, а через пару недель/месяцев/лет прийдёте к противоречию. Будет обидно, но по крайней мере это будут уже не пустые рассуждения на отсутствующей математической базе.
     
  8. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    А вот над этим надо думать. Почему и сказал, что операция деления, получается, определена не до конца.
     
  9. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    А что тут думать? Вполне очевидно, почему получился разрыв. goto matan.
     
  10. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Очевидно - не значит доказано.
    Не факт, что не существует точка x = 1/(inf*2), в которой df(x)/dx = 0.
     
  11. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    SadKo, по определению, a * inf = inf, где a принадлежит R.
     
  12. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    SadKo
    Вам уже ответили:
    Для меня очевидно, что это бред и заниматься этим не имеет смысла.
     
  13. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    srm
    канчайте грузить уже этой трехсотлней палеонтологией, которой учат на первом курсе.
    Почитайте наконец об гипервещественных числах наконец. Они малость похкожи на комплексные числа, то есть пара чисел a+b*eps, где eps (аналог i) это неархимедов элемент (не обязaтельно определять его сразу как что-то там очень малое или меньше наперед любого положительного и т.п. При более точном подходе нужно брать отношение полиномов, но нам пока хватит a + b * esp.)

    бесконечно малой тогда будет 0 + b * eps, умножив его на n получим 0 + n * b * eps, то есть он вертится вокруг нуля при любом конечном n, а значит 0 + b * eps это бесконечно малая, как мы и ожидали (не достигает 1 сколько ее не повторяй, но и не ноль, которому соответствует пара 0 + 0 * eps).

    Бесконечность это тогда 1/(0+b*eps), а умножив ее на с получим с/(0+b*eps).

    вещественную часть (монаду) нельзя выделить ни из того ни из другого, так что это все бесконечности, но информация об умножении на c не потерялась, поэтому

    с * inf = inf_которая_помнит_что_ее_умножили_на_с, а не просто с*inf=inf как вы тут расписали.
     
  14. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Очень интересная теория. А можно про неё поподробнее? Пруфлинки там или ещё чего.
     
  15. branvi

    branvi New Member

    Публикаций:
    0
    Регистрация:
    21 янв 2011
    Сообщения:
    40
    Вот же ж, блин, развели на пустом месте. Между тем, за всю тему был произнесен всего один аргумент против введения результата операции mod 0, и ни одного аргумента за.

    Аргумент против:
    (Обычный программист убежден, что на ноль делить нельзя.)

    Аргумент за должен показывать такую эффективность введения этой операции, чтобы она перекрывала последствия аргумента против. Приводите алгоритмы, в которых присутствует эта операция, обосновывайте, зачем она нужна.
     
  16. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    И не говорите, вопрос-то того не стоил.
    Да. Все языки допускают ))) нормальная запись. Результат ненормальный, а запись ок.
    Осмысленное - не в канонической алгебре.
    не надо гиперкомплексное пространство вводить. Задача-то понятна? Ответ вообще простой.

    Либо надо определить НОВУЮ функцию, которая будет определена как

    f(x, y) = x mod y, y!=0
    f(x,y) = x, y=0

    и документировать в своем языке данное определение. Если бы функцию писали в мелкой мягкой, возвращаемое значение было бы -1, что тоже нормально, главное документировать.

    Либо допустить программистам делать конструкции вида "try {x mod y} catch {do anything you want}" - а там хотят, считают что получилось х, хотят - 0, или делают сообщение "не могу делить на 0!" или еще тысяча и один вариант. Некоторые случаи допускают нормальное продолжение - согласен. Вовсе не обязательно все крешить и в осадок выпадать.

    Делать по умолчанию поведение достаточно стандартной операции отличным от ожидаемого (9 из 10 программистов будут иметь дело с нормальной алгеброй и опыт работы с другими языками) нецелесообразно и даже вредно.

    Ошибку же в стандартной операции генерировать надо обязательно. Потому что логика человеческая может быть "а чо это я на форме буду проверку делать на пустые поля, для каждого? Я сразу в формулу загоню, а при ошибке деления на 0 выведу (Введите валидные значения во ВСЕ поля!) и все довольны". Давно уже так и делают, как бы это не выглядело. Благо обработка исключений даже в бейсиках есть, и давно (on error goto - еще в кубасике было).
     
  17. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    FatMoon
    +100
    К примеру, "пресловутая" Дельфя, дабы не ломать голову над ошибками преобразования строки в число, просто предлагает несколько функций\вариантов обработки на выбор:
     
  18. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Ну а никого не смущает, что половина софтовых калькуляторов при попытке вычислить факториал дробного аргумента дают ERROR, а вторая половина вычисляет гамма функцию (со сдвигом 1)? Как может быть дробный факториал у выражения 1*2*3...*N, но ведь факт что может!

    топикстартер спрашивал, или хотел спросить, как можно разумно расширить функцию mod для нулевого делителя?

    Я предложил a mod 0 = 0 и указал на некоторые соображения. Тут больше склонялись что a mod 0 = a, но целесообразность такого расширения еще нужно показать. Если первое не так сильно противоречит нормальной функции mod, то второе уже черезчур, никак не связано с нормальной функцией mod, которая впихивает делимое в рамки делителя.

    Насчет яблок.
    10 яблок делили по 2 яблока и накормили 5 человек.
    10 яблок делили по 1 яблоку и накормили 10 человек.

    Потом налетела офигенная куча мушек-дрозоофил и откусила по бесконечно-малому кусочку на рыло, сожрав все 10 яблок и не оставив НИЧЕГО. Ответ: НОЛЬ.

    как ни крути, a mod 0 = 0
     
  19. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    Если деление на ноль рассматривать как отказ от раздачи яблок, то всё уходит в остаток.
    В этом случае 0 это именно идеальный нуль, а не порция яблок для дрозоофилы.
     
  20. srm

    srm New Member

    Публикаций:
    0
    Регистрация:
    14 июн 2011
    Сообщения:
    189
    persicum
    видимо, Вы не учились на первом курсе.

    Молодец, можешь взять конфетку с полки. Как это относится к обсуждаемой теме? Мы говорим о конкретной рациональной функции. Хотите похвастаться своими знаниями - создавайте отдельную тему.