Подтверждаю. В банках платили очень много лет 25 назад, когда ещё не было специалистов. Потом банки стали использовать стандартную практику платить на 15% меньше рынка. Потому что работать у нас большая честь (с)
CIO – это тот, кто совмещает в одном лице понимание того, как будет развиваться ИТ организации (её технологическое обеспечение) в светлом будущем (и обеспечивает неуклонность этого развития) с обеспечением стабильности работы организации в ИТ-части в суровом настоящем
мол если множитель равен 1, то лучше не умножать, потому что это может изменить умножаемое число, если это число мало. Писал, очевидно, человек, который не знает, что в представлении с плавающей запятой числа хранятся так, что их относительная точность не зависит от того, равно число 1.e+100 или 1.e-100.
Знание того, как оно хранится, не поможет. Тут надо знать алгоритмы выполнения операций в плавающем формате, чтобы сделать цепочку выводов:
При умножении нет выравнивания порядков и связанной с этим потери точности
Нет потерь точности на представление единицы (как константы, а не как результата вычислений) в плавающем формате. Она хранится абсолютно точно.
При умножении результирующая экспонента = сумме экспонент, но у единицы она нулевая, а значит экспонента результата не изменится
Представление единицы имеет одни явные нули в мантиссе. Но есть одна неявная старшая единица. Именно она и гарантирует сохранение абсолютно всех знаков мантиссы другого сомножителя в старших разрядах результата. Ну а нули гарантируют обнуление всех остальных (младших) знаков мантиссы результата
Таким образом, мантисса результата абсолютно не изменится
Знак результата не изменится
При применении одного и того же алгоритма умножения для всех плавающих чисел, и даже при выполнении реальных вычислений, умножение на единицу никак не изменит исходное число. Даже на epsilon. Вообще ни на сколько.
Вот такой фокус
Я думаю, что у программиста могла быть своя логика. Кроме того, программист мог знать вопрос досконально, но схитрил из-за оказываемого на него давления в нездоровой атмосфере.
И это оказало некоторое воздействие на систему. Вы же сами хотя в одном месте пишете сначала это
эта проверка является совершенно бессмысленной, хоть и довольно безвредной
а затем вот это
Однако это бессмысленное изменение сделало главное: проблемная модель снова стала глючить точь-в-точь, как глючила до этого.
Получается, что не такое уж и бессмысленное, раз оказывает влияние на поведение системы. По факту программист ловко перевел стрелки, получил премию, а потом уволился с повышением, не забыв раскрыть в резюме, как он ловко нашел и обошел глюк.
Подтверждаю. В банках платили очень много лет 25 назад, когда ещё не было специалистов. Потом банки стали использовать стандартную практику платить на 15% меньше рынка. Потому что работать у нас большая честь (с)
Вы, кажется, не поняли, что умножение происходит не на единицу
потому что это приводит к неверным вычислениям
Математика Ваша не бьется, поэтому и спрашиваю.
В принципе, мне всё равно.
Удивлен. Даже подпись на картинке имеется - а вам всё равно непонятно.
Пожалуйста
Не станет. Задача руководителя продать говно и закрыть проект. А не нудеть, что надо всё переписать
А так точно можно?
Что вводите сюда?
Для какой переменной?
Знание того, как оно хранится, не поможет. Тут надо знать алгоритмы выполнения операций в плавающем формате, чтобы сделать цепочку выводов:
При умножении нет выравнивания порядков и связанной с этим потери точности
Нет потерь точности на представление единицы (как константы, а не как результата вычислений) в плавающем формате. Она хранится абсолютно точно.
При умножении результирующая экспонента = сумме экспонент, но у единицы она нулевая, а значит экспонента результата не изменится
Представление единицы имеет одни явные нули в мантиссе. Но есть одна неявная старшая единица. Именно она и гарантирует сохранение абсолютно всех знаков мантиссы другого сомножителя в старших разрядах результата. Ну а нули гарантируют обнуление всех остальных (младших) знаков мантиссы результата
Таким образом, мантисса результата абсолютно не изменится
Знак результата не изменится
При применении одного и того же алгоритма умножения для всех плавающих чисел, и даже при выполнении реальных вычислений, умножение на единицу никак не изменит исходное число. Даже на epsilon. Вообще ни на сколько.
Вот такой фокус
Я думаю, что у программиста могла быть своя логика. Кроме того, программист мог знать вопрос досконально, но схитрил из-за оказываемого на него давления в нездоровой атмосфере.
И это оказало некоторое воздействие на систему. Вы же сами хотя в одном месте пишете сначала это
а затем вот это
Получается, что не такое уж и бессмысленное, раз оказывает влияние на поведение системы. По факту программист ловко перевел стрелки, получил премию, а потом уволился с повышением, не забыв раскрыть в резюме, как он ловко нашел и обошел глюк.