Цитата
mrcnn:
Это в этой программе может сравнение и работать. Но можно нарваться на ситуацию, когда она не сработает.
Теория - помогите сделать блок-схему
Ага. Есть сдвиги. Уже «работает, но можно нарваться», вместо «никогда». Тогда приведите пример про «нарваться», когда «1/3» не будет равна «1/3».
Цитата
mrcnn:
Ваше рассуждение индуктивное. Вы пытаетесь ОДНИМ примером доказать правильность перевода вывода на весь класс предметов, и в данном случае это ошибочно.
Теория - помогите сделать блок-схему
Это утверждение коллеги
Tau_0:
Цитата:
ибо никогда в лоб на плавающей точке равенства не будет...
ошибочно, а вслед за ним и Ваше. Я его опровергаю «ОДНИМ» простым незатейливым примером.
Цитата
mrcnn:
Проблему неполной индукции еще никто не отменял. Это у вас сейчас работает, но в целом оно неправильно даже несмотря на то, что временно работает или работает в каких отдельных ситуациях. Ваш пример работает, потому что это временное исключение.
Теория - помогите сделать блок-схему
Ну, ну. Повторяю уже в третьем сообщении: приведите исключение, когда «1/3» не будет равна «1/3».
Цитата
mrcnn:
Я сталкивался с ситуациями, когда 0 не был равен 0 в простых программах из-за того, что нет бесконечности.
Теория - помогите сделать блок-схему
Эко Вас понесло. Оставим пока в покое два представления машинного нуля и т.п.
Цитата
mrcnn:
Компьютер всегда работает с приближением, поэтому разрабатываются численные методы дифференцирования, интегрирования, решения уравнений и т.д.
Теория - помогите сделать блок-схему
Напротив.
читать дальше »
Компьютер всегда работает
точно. И потому может терять представление порядка в ту или иную сторону вследствие ограниченности его (порядка) представления. И вот потому-то, что он работает
точно, и разрабатываются различные методы
округления для компенсации ошибок
вычислений при (повторяю в третий раз)
переполнении и исчезновении порядка. Но это не имеет ни малейшего отношения к тому, что два
числа будут равны или не равны между собой, независимо от того, был ли потерян порядок их представления или нет, ибо порядок будет потерян равнозначно у
обоих сравниваемых чисел.
читать дальше »
Цитата
mrcnn:
Компьютеры являются дискретными устройствами, поэтому вам даже в информации о процессоре Intel i7 пишут, что видеокадаптер встроенный в процессор является дискретным. В комьютере реализуются дискретные функции, потому что нельзя реализовать непрерывные. Нельзя реальный физический мир повторить в комьютере. Есть специальный курс дискретной математики в профессиональных ВУЗах для программистов и инженеров. Реализуя компьютерный алгоритм в программе, вы всегда переводите с непрерывного класса функций на дискретный.
Бесконечности вещественных чисел в компьютере нет. Поэтому на плавающей точке в лоб равенства может не быть. В электронике на физическом уровне инженерами реализована ТОЧНОСТЬ ДО определенного ЭПСИЛОН, а не бесконечность. Я имею в виду инженеров компаний типа Intel, AMD и т.д., которые занимаются созданием чипов.
1/3 переводится к конечному представлению в компьютерах.
Теория - помогите сделать блок-схему
Цитата
mrcnn:
А ведь предупреждали: не сравнивайте вещественные числа между собой. Нет же, пока САМ не обожжется - должен попробовать. //
http://forum.pascalnet.ru/lofiversio...hp/t24610.html
ВОТ ПРИМЕР КАК ОБЖИГАЮТСЯ
select * from table_name where val=1.7
Значение 1.5 остается как было, значение 1.7 меняется на 1.70000004768372. //
http://www.sql.ru/forum/958491/strannyy-kosyak-s-float
ГДЕ ТА БЕСКОНЕЧНОСТЬ, КОТОРУЮ ВЫ ТУТ МНЕ ПЫТАЕТЕСЬ ДОКАЗАТЬ?
А число 1.7 в двоичной системе имеет бесконечный хвост, который сохранить полностью не представляется возможным. //
http://www.sql.ru/forum/958491/strannyy-kosyak-s-float
Это, кстати, касается и случая, когда Вы сравниваете вещественные числа, не учитывая точность представления чисел. Посмотрев в отладчике, что числа, вроде как одинаковые, но сравнение срабатывает так, как будто они разные, Вы не задумались бы, что именно в сравнении содержится ошибка. //
http://popoff.donetsk.ua/text/work/prg/debug.html
У вещественных чисел есть погрешность. Сравнивайте не "равно", а больше/меньше, с учетом этой погрешности. //
http://linuxforum.ru/viewtopic.php?id=4076
Не сравнивайте на равенство вещественные числа. //
http://www.intuit.ru/studies/courses...?page=2
Уж сколько раз твердили миру: не сравнивайте вещественные числа на равентство. //
www.forum.mista.ru/topic.php?id=620586
Не сравнивайте вещественные числа оператором = (равно). Это не проблема Delphi, а свойство их представления. //
http://rfpro.ru/?step=search&mode=an...=5&from=110280
Теория - помогите сделать блок-схему
Зачем Вы мне
это доказываете? Я об этом давно уже написал в этой теме, поднимите глаза долу на
Теория - помогите сделать блок-схему
. Но всё это никак не отменяет того факта, что утверждение
Цитата:
ибо никогда в лоб на плавающей точке равенства не будет...
ложно. Можно утверждать лишь о том, что «В результате
потери или исчезновения порядка при вычислениях результаты сравнения а)
могут б)
в некоторых случаях оказаться некорректными», а вовсе не тот тезис, из-за которого разгорелся весь сыр-бор. И плавающая точка тут совершенно не при чём. Ровно та же логика будет, к примеру, на целых числах и целочисленных вычислениях.