fpc-3.0.0 - запилили баг в арифметику

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Сквозняк писал(а):Мозг во время сна в том числе чинит организм


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

Сквозняк писал(а):А вот зачем сложную математику преподают в виде мусора, спросите у профессионалов :mrgreen:


А тут и смысла спрашивать нету. Немногие ее знают на таком уровне, что способны разжевать ее другим((
Старый анекдот про учителей зачастую не анекдот ((( (Третий раз объясняю, я уже сам понял... вижу по глазам, что не понимают!)
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Сквозняк писал(а):В реальности на микроуровне в материи всё равно турбулентность - всего нельзя подсчитать, потому приблизительные округлённые расчёты в среднем могут быть даже точнее сверхточных.


Да??? Смотрите, вот реально рухнувший самолёт и реально взорвавшаяся АЭС:

Код: Выделить всё

s:string; 
R,RR: Single;
I:Integer;
begin     
    R:=1;
    RR := 0.1;
    for I:=1 to 10 do R:=R-RR;

    RR := 3;
    RR := RR / R; // вместо того чтобы наорать на меня, мол на ноль делить нельзя, она во чего делает:

    writestr(s,R:16:16);
    writeln('R = ' +s);
    writestr(s,RR:16:16);
    writeln('RR = ' +s);
readln;
end.     

И Вы после этого будете говорить о турбулентности на макроуровне? После такого результата - любой самолёт мгновенно в штопор уйдёт!
Все эти ср-ые современные самолёты летают на ср-ых процессорах с явно неправильной организацией бинарного кода.
Теперь ещё и машины будут ездить...

И я уверен 99% программистов, не знают, о том что, когда делят пять морковок на пять детей, ошибки не возникает, но стоит продолжить деление, и попробовать дать половину морковки половине ребёнка, как тут же... начинаются математические чудеса!!! Половина морковки становится не только целой, их может стать даже 10-ть... и даже 20-ть! Но мы-то, знаем, что такого быть не может!!! Потому что, в детский сад завезли только пол морковки.

:roll: А компьютеру вообще всё это пофигу. т.к. он выдаёт, то, что выдал в примере выше! И самолёты падают, машины врезаются, ракеты и АЭС - взрываются. И только производители процессоров - процветают, т.к. производители никогда не слышали о бинарном коде, постольку поскольку купили технологии у какого-то лузера за пять рублей. И теперь втюхивают эти ср-ые процессоры всему миру! А догадаться немного подправить: академики всего Мира - не в силах!

.
Последний раз редактировалось vitaly_l 18.03.2017 16:28:48, всего редактировалось 1 раз.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

vitaly_l, самолеты, ракеты и даже иногда утюги... как летали, так и будут летать. А насчет ошибок... к сожалению, от них не застрахован никто.
И поверь, в производстве процессоров и прочих чипов задействованы самые маститые ученые практики, туча техники и материалов. И, как ни странно, основной брак отсеивается при изготовлении и уничтожается физически.
Ах да... каждая такая ошибка анализируется и, почти наверняка, заносится в БД конструкторов.
А голословно всех обвинять в некомпетентности... у всех сразу закрадывается подозрение о свежем урожае тепличной травы.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

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

Вот, как только пропадает чувство юмора :roll: , так сразу начинаются урожаи тепличной травы. :wink: .

Лекс Айрин писал(а):задействованы самые маститые ученые практики

И эти "самые маститые ученые" :roll: в розовых пиджаках - с 1935 года, уже по 2017 год, никак не могут решить задачу, которая любому школьнику по плечу :evil: .
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

vitaly_l писал(а):Вот, как только пропадает чувство юмора :roll: , так сразу начинаются урожаи тепличной травы. :wink: .


Так мы же здесь не анекдоты травим. Так что чувство юмора я отодвигаю в сторонку.... оно у меня черное....

vitaly_l писал(а):И эти "самые маститые ученые" :roll: в розовых пиджаках - с 1935 года,


Зачем в розовых спинджаках.... многие из них вполне уютно себя чувствуют в джинсах и футболке... а не могут решить... так они не курят траву.
А так, занимались даже троичным процессором, процессором для ЯВУ и пр... экзотикой. Возможно, они со временем достанут все это из загашника, но пока это все нерентабельно.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

Лекс Айрин писал(а):Так мы же здесь не анекдоты травим. Зачем в розовых спинджаках.... многие из них вполне уютно себя чувствуют в джинсах и футболке... а не могут решить...

Чё правда решить не могут? :roll: Я что же, зря так долго объяснял? :roll: sign - правильный анекдот привёл.
Вы прям как лейтенант с 28-ю танками из этого анекдота: https://youtu.be/1k8AxQ77cu8 :wink:
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

vitaly_l (не обязательно и он... :)) какая точность Single, после запятой?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

vitaly_l писал(а):Чё правда решить не могут? :roll:


Не хотят фигней страдать.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

pupsik писал(а):какая точность Single, после запятой?

Какая разница, если я всё привёл к одному типу ?

Код: Выделить всё

var
s:string;
R,RR: Single;
I:Integer;

C какого рожна, она мне в Single вставила Extended ?

Код: Выделить всё

    R:=1;
    RR := 0.1;
    for I:=1 to 10 do R:=R-RR;

    RR := 3;
    RR := RR / R; // вместо того чтобы наорать на меня, мол на ноль делить нельзя, она во чего делает:

Ну и естественно результат шокирующий даже бывалых:

Код: Выделить всё

    writestr(s,RR:8:8);
    writeln('RR = ' +s);

Результат: -40265320.00000000 <== это мгновенный штопор у самолёта и взрыв АЭС.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

перед делением нужно обязательно делитель проверять на ноль (неважно целые или дробные)
для дробных:

Код: Выделить всё

if SameValue(R,0,EPS_single)


>>у и естественно результат шокирующий даже бывалых:
Это всё от незнания))
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

zub писал(а):всё от незнания))

от незнания чего? Я делаю стандартные операции, которые есть в каждом, например, 3D движке.
Например фигня едет со скоростью -0.1 по оси х. Едет себе едет и вдруг бах: -40265320.00000000
Что я не так делаю?
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

Какая разница
поэтому у вас и происходят такие "разрушения".

п.с.
Не быть вам поваром. Не вкусно будет.
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

vitaly_l писал(а):Да??? Смотрите, вот реально рухнувший самолёт и реально взорвавшаяся АЭС:

Код: Выделить всё

  RR := RR / R; // вместо того чтобы наорать на меня, мол на ноль делить нельзя, она во чего делает:

[/quote]
Какая АЭС реально от этого взорвалась? А на ноль делить нельзя математикам, а умным программистам - можно:

Код: Выделить всё

  RR := RR / Funkcija_dlja_del_na_0(R);
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

vitaly_l писал(а):Что я не так делаю?


"Поздравляю! Вы прибыли в область сингулярности! Следующая остановка -- Преисподняя."

Тебе сказали, что делать. Вот когда придумают вещественные числа с фиксированной разрядностью, тогда часть ошибок подобного рода уйдет (кроме деления на ноль) . Но, скорее всего, этого не будет.
Аватара пользователя
Pavia
постоялец
Сообщения: 290
Зарегистрирован: 07.01.2011 11:46:51

Сообщение Pavia »

Плавающие числа лучше. Длинные числа на матричных расчётах съедают всю память.
Поэтому математики вынуждены искать устойчивые алгоритмы. А ваш пример не устойчивый.

Проблема в другом. Что максимальную точность которую можно гарантировать это только матрицы порядка 10х10 а требуют считать 1000х1000 или и того больше 1 000 000х 1 000 000
А теперь представь, что натурный эксперимент при сдаче изделия можно заменить расчётами. Вот после этого становиться страшно как не падают дома не взрываются АЭС и прочие объекты.
А по поводу АЭС есть всем известная библиотека BLAS - которая разработана в недрах американского министерства атомной энергетики. Очень популярная библиотека для численных расчётов. Так вот к чему это я там используются числа с плавающей точкой!!!
Ответить