Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2010, 06:48   #41
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
А с quan что? Поясни плиз.
Пока не знаю еще, буду разбираться, но к гадалке не ходи, что раз работает не так как заявлено, значит в коде косяки . Найду проблему отпишусь...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.12.2010, 06:52   #42
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ну да, пиши в ту свою тему. Я подписался. Тут я чёт зря флуд завел
Sibedir вне форума Ответить с цитированием
Старый 21.12.2010, 07:44   #43
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Я в чем то согласен с Sibedir, если ввести константу INFINITY, то можно будет строить альтернативные, вполне логичные вычисления:

A=1/0=+INFINITY
B=-1/0=-INFINITY
С=A+B=0

Вот как бы и сошлись, можно продолжить список операций:

A/A=1
A/B=-1
B/B=1
A+A=A
B+B=B
A*B=B
B*B=A
A*A=A

Ну вроде логично. Только вот я затрудняюсь ответить на:

0/0=?

Возможно 0 или INFINITY...

PS Прошу прощения за откровенную тупость...
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 21.12.2010, 07:51   #44
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Не вижу ничего тупого.
Проблема с константой в том, что это потребует еще учитывания операций с ней, а мне пока и этих хватает...
Нужно будет определять - сложение с бесконечностями, вычитание, умножение и деление (а там и сравнение). Впринципе возможно, но опять же куча загогулин...

Цитата:
Возможно 0 или INFINITY...
По идее это 1...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 21.12.2010, 08:00   #45
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Ну а по другому будет не особо правильно, ведь вопрос был именно "как правильно делить на нуль"...Не думаю что нуль нужно и можно рассматривать как бесконечно малое число...Хотя конечно же все зависит от задачи.
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 21.12.2010, 08:29   #46
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
По идее это 1...
Вот оно, формула вечного двигателя
А по делу, надо сообщать об этом, в каком виде, либо исключение, либо нотификация (исключение-заглушка) либо еще как. Иначе, можно кучу времени просто потратить, чтобы понять где и почему, и в какой момент была изменена переменная/значение из-за магического деления на ноль, хотя это противопоказано законами математики (меня лично так учили). Ну а если это что-то типа математического движка, то тогда думаю на обработку данного исключения можно выводить бесконечность (та восьмерка, которая перевернутая).
BOBAH13 вне форума Ответить с цитированием
Старый 21.12.2010, 08:40   #47
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

моя рыдает...

Загнать бы вас всех на первый курс мат-фака или хотя бы в школу...

Не просто так на ноль делить нельзя.

http://www.chayka.org/article.php?id=3049 (или даже так: http://lurkmore.ru/%D0%94%D0%B5%D0%B...B8.D0.BA.D0.B5)

Запись 12 / 3 можно понимать как сокращенную форма записи уравнения x * 3 = 12. Иными словами, 12 / 3 - это такое число, которое при умножении на 3 даёт 12. Т.е. 4.

Какое число означает 12 / 0? 12 / 0 - это запись x * 0 = 12. Т.е. число, которое при умножении на 0 давало бы 12. Такого числа просто не существует, найти его невозможно. Поэтому запись 12 / 0 лишена смысла. Как говорят в школе, "на ноль делить нельзя".

Ну и 0 / 0. Тут у нас будет x * 0 = 0. Казалось бы, решабельно. Ответ 0? А почему не 1? Не 5? Не 12? Вот и получается, что ответов много, а значит 0 / 0 - вовсе не число и, следовательно, тоже не имеет смысла.

Поэтому единственное, что можно сделать с операцией деления на ноль - выдавать ошибку. Будет это исключение, признак ошибки (False или специальное NaN значение) - не суть важно. Главное, чтобы это не было успешной операцией, дающей осмысленный результат (бесконечность относится к осмысленному результату).

Понятно, что любая операция с спец-значением "ошибка" должна давать ошибку и никак иначе.

Чтобы не усложнять всю логику тоннами таких проверок и придуманы исключения.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 21.12.2010 в 08:43.
GunSmoker вне форума Ответить с цитированием
Старый 21.12.2010, 08:41   #48
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Вот оно, формула вечного двигателя
А по делу, надо сообщать об этом, в каком виде, либо исключение, либо нотификация (исключение-заглушка) либо еще как.
Это выражено разными операциями деления. То есть если Вы используете одну процедуру, то подразумеваете исключение при делении на нуль, иначе некое магическое число. То есть ответственность за выбор возложена на того, кто будет пользоваться этой библиотекой.

Цитата:
Иначе, можно кучу времени просто потратить, чтобы понять где и почему, и в какой момент была изменена переменная/значение из-за магического деления на ноль, хотя это противопоказано законами математики (меня лично так учили).
А математика вообще мутная наука. Например, я не нашел математического определения в Википедии. Там написано, что есть несколько понятий бесконечности, но как говорится, тема не раскрыта...
Далее насчет обучения - наши школы не успевают за сокращающимися ВУЗами - в школе нельзя делить на нуль и точка, а в институтах иногда можна . Так что не все здесь является абсолютным знанием...

Цитата:
Ну а если это что-то типа математического движка, то тогда думаю на обработку данного исключения можно выводить бесконечность (та восьмерка, которая перевернутая).
То есть специальный флаг? В смысле не число?

Цитата:
Не думаю что нуль нужно и можно рассматривать как бесконечно малое число...Хотя конечно же все зависит от задачи.
Это потому что Вы его обожествляете. А что такое нуль? Всего лишь число на прямой (пока расматриваем числа с точкой). Если рассматривать некую другую систему отсчета, которая сдвинута относительно первой на некое число (пусть n), то окажется, что нуль-то от остальных чисел ничем не отличается .

Цитата:
моя рыдает...
Моя не любит людей с завышенным ЧСВ... А что делать?

Цитата:
Загнать бы вас всех на первый курс мат-фака или хотя бы в школу...
Это ненависть на почве математической бесграмотности?

Цитата:
Чтобы не усложнять всю логику тоннами таких проверок и придуманы исключения.
Чтобы не искать ответ и придуманы такие исключения .

Цитата:
Какое число означает 12 / 0? 12 / 0 - это запись x * 0 = 12. Т.е. число, которое при умножении на 0 давало бы 12. Такого числа просто не существует, найти его невозможно. Поэтому запись 12 / 0 лишена смысла.
Его нельзя найти, но можно приблизиться. Если его нельзя найти это не значит, что оно не существует. 12 /0 имеет глубокий сакральный смысл . Я знаю ответ - 42.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.12.2010 в 08:53.
Utkin вне форума Ответить с цитированием
Старый 21.12.2010, 08:48   #49
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

К слову сказать опять отсебятина.
0/0 = <любое их множества>
Цитата:
А что такое нуль? Всего лишь число на прямой (пока расматриваем числа с точкой). Если рассматривать некую другую систему отсчета, которая сдвинута относительно первой на некое число (пусть n), то окажется, что нуль-то от остальных чисел ничем не отличается
Это только в арифметике. Ни в алгебре, ни в физике это делать нельзя.
Пример 1 - интегралы (везде)
Пример 2 - нагрели два тела с разной температурой на 1 град. Потом они оба обменялись теплом (стали с одинаковой температурой). Потом остудили на 1 град. Работа, потраченная на нагрев <> энергии полученной при остывании, а сумма их температур до и после эксперимента изменилась.
Пример 3 - теория относительности (вообще везде)
и т.п.
0 (в физике и вышке) - это принятое начало отсчета, и принимается оно не абы как.

Utkin, у тебя явно арифметика. В арифметике делить на нуль нельзя. Не потому что это нельзя, а потому, что результат не определен, а в арифметике нет такого понятия как "неопределенность". Если создаешь свою арифметику, думай о ее применимости. Никто не станет применять арифметику, в которой 1/0 = 999999...999999.
Эх раз, еще раз
Арифметика - это наука (если хотите, а если не хотите, то раздел математики) занимающаяся натуральными (жизненными) вычислениями. А делить яблоко между никем - это как-то не очень жизненно.

Цитата:
То есть ответственность за выбор возложена на того, кто будет пользоваться этой библиотекой.
Это верно. Но ответственность за предоставление выбора - ТВОЯ.
ППниПП:
Вот те две гранаты. Первая - если бракованная, то пукнет и всё. Вторая - если бракованная, то руку оторвет по самые ноги.

P.S.: Фраза моей учительницы: "Делить на нуль НЕЛЬЗЯ" (типа так кто-то самый главный сказал) сделала меня тем, кто я есть (чуть меньше, чем полностью). Это серьезный повод перевернуть мир, но это еще не дает право этим заниматься. Право переворачивать мир дает только наличие серъезной опоры.
Ну понесло, понесло Астапа
Если у реки стоит табличка "Брода нет" - это не значит, что я не могу туда идти. Это значит, что кто-то тщательно искал и не нашел, и, если я пойду, вероятность утануть ~ 99.999%. Прежде чем говорить, что брод есть, его надо сперва найти.

Последний раз редактировалось Sibedir; 21.12.2010 в 09:21.
Sibedir вне форума Ответить с цитированием
Старый 21.12.2010, 08:51   #50
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
К слову сказать опять отсебятина.
0/0 = <любое их множества>
Да. Но проблема в том, что нужен результат один, чтобы работать с множествами придется писать еще один модуль, пока же надо до ума этот довести...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Деление на нуль при запуске Pababop Паскаль, Turbo Pascal, PascalABC.NET 0 12.12.2010 16:43
убрать null (нуль) символы в строке Kib Общие вопросы Delphi 7 25.06.2010 14:22
как поставить ограничение на число нуль а не на символ нуль??? Dr.Swat Помощь студентам 0 12.06.2010 20:35
Делить без остатка rangel PHP 4 30.07.2009 14:31
На 0 делить! abdumanon Microsoft Office Excel 6 07.04.2009 13:18