Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
Мне нужно выделить НДС (налог на добавленную стоимость) из стоимости товара. Есть простое правило: стоимость делим на 118 (получаем 1%) и умножаем на 18, получаем выделенный из стоимости НДС.
Пример в рублях: 118/118=1 (один процент), далее, 1*18=18. В данном случае, НДС равен восемнадцати рублям. Это тривиально.
Меня интересует теоретическое обоснование второго способа!
Пример в рублях: 118*18=2124 (что это за число???), далее 2124/118=18.
То есть, в первом случае, я могу обоснавать промежуточный результат, а именно, нахождение одного процента и умножение его на количество процентов равных ставке НДС (18%). А вот второй случай мне не понятен. Теоретически непонятен!!! И первый и второй случаи дают одинаково правильный результат! Может кто подскажет?
P.S. Стоимость в 118 рублей я взял для наглядности.
Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
Popik писал(а):
Может быть я чего то недопонял, но какая разница, что выполнять первым: деление или умножение?118 / 118 * 18 = 118 * 18 / 118
Блин, так и есть. Я предполагал подобное. Только арифметика и математика не то, в чём я силён. Тут, хотелось бы обосновать это простыми фразами. Доказать, то есть. Мне и первый и второй способы одинаковы. Я их использую в прикладном плане. Не более.
Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
Hil писал(а):
С точки зрения точности расчётов обычно правильнее вначале умножать, потом делить. Особенно если применяется округление до копеек.
Так и было. Во втором случае я получал округление до двенадцати разрядов после запятой. Калькулятор, естесственно, 14-digit. В первом случае округлениебыло в промежуточном результате. Надо взять другое число, хотя бы 100. И посмотреть.
BW4ever писал(а):
Maxxtro ты чего, 1й и 2й это одно и тоже.
Да. Так. Но округления получаются разные.
Задача в том, что, мне надо доказать, что второй способ лучше. Точнее, что ли...
Advanced member
Статус: Не в сети Регистрация: 11.05.2003 Откуда: фром Нижний
Maxxtro писал(а):
Задача в том, что, мне надо доказать, что второй способ лучше. Точнее, что ли...
Элементарно, Ватсон. При делении в случае бесконечной дроби мы теряем информацию по причине дискретности ЭВМ. При умножении информация не теряется, так как в случае умножения целого числа на целое бесконечность не получится Следовательно, если деление мы будем производить после умножения - мы будем терять меньше полезной информации
_________________ Компьютер нужно покупать как телевизор или машину: имеет значение лишь где аппарат сделан и кем.
А комплектующие пусть подбирает сам производитель
Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
RU_SilaVlad писал(а):
Элементарно, Ватсон.При делении в случае бесконечной дроби мы теряем информацию по причине дискретности ЭВМ. При умножении информация не теряется, так как в случае умножения целого числа на целое бесконечность не получитсяСледовательно, если деление мы будем производить после умножения - мы будем терять меньше полезной информации
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: Москва
Maxxtro писал(а):
Задача в том, что, мне надо доказать, что второй способ лучше. Точнее, что ли...
Такой же он Просто при вычислении этого дела на калькуляторе с округлением до десятичной дроби он точнее.
Вот например смотри: надо нам 1 разделить на 3 и умножить на 3.
Если сначала 1 разделим на 3, получим 1/3 а в калькуляторе 0.(3)
Но! Если калькулятор старый и немодный, то он округлит 0.(3) до 0.33333333 (до какой то конечной записи). Потом когда мы умножим на 3, то получим 0.99999999, а не 1 (хотя на современных калькуляторах будет 1).
А если сначала умножим на 3, а потом разделим на 3, то будет 1. ( это думаю очевидно)
Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
Popik писал(а):
Но! Если калькулятор старый и немодный, то он округлит 0.(3) до 0.33333333 (до какой то конечной записи). Потом когда мы умножим на 3, то получим 0.99999999, а не 1 (хотя на современных калькуляторах будет 1).
Тут имеется ввиду бесконечная периодическая дробь?
RU_SilaVlad Если я правильно понял, то, в случае умножения, мы увеличиваем число на энное количество раз (энное количество отрезков) согласно коэффициенту умножения. То есть складываем его с самим собой согласно множителю. Тут понятно. Число увеличивается. И дробей не должно быть. А с делением ситуация другая. Коэффициент (делитель) может не соответствовать тому количеству отрезков, что были вложены при умножении. Так? Если непонятно, я попытаюсь объяснить, просто, я пытаюсь это понять, но есть проблема в терминах.
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: Москва
Maxxtro писал(а):
Popik писал(а):
Но! Если калькулятор старый и немодный, то он округлит 0.(3) до 0.33333333 (до какой то конечной записи). Потом когда мы умножим на 3, то получим 0.99999999, а не 1 (хотя на современных калькуляторах будет 1).
Тут имеется ввиду бесконечная периодическая дробь?
Advanced member
Статус: Не в сети Регистрация: 11.05.2003 Откуда: фром Нижний
Maxxtro Гм... Ну, можно и так сказать Если, конечно, не коробит изъясняться терминами для 3-5 классов Хотя сути это не меняет Можешь ещё почитать тут, раз уж захотелось обоснований: http://www.delphikingdom.com/asp/viewit ... mode=print
_________________ Компьютер нужно покупать как телевизор или машину: имеет значение лишь где аппарат сделан и кем.
А комплектующие пусть подбирает сам производитель
Заблокирован Статус: Не в сети Регистрация: 20.06.2005 Откуда: Москва.
Popik писал(а):
Да. Это стандартное обозначение.
Понял. Добавлено спустя 15 минут, 18 секунд
RU_SilaVlad писал(а):
Гм... Ну, можно и так сказатьЕсли, конечно, не коробит изъясняться терминами для 3-5 классов
RU_SilaVlad Статья из ссылки предполагает приближение математики к возможностям цифровых машин. Я прочитал статью из ссылки пару раз по диагонали. Может, мои выводы неправильны. Однако, я понимаю, что округлять надо до такой степени, после которой погрешность округления не влияет на результат. Ну, можно округлить до 0,01 цента, при бюджете в пару десятков миллиардов, это округление может иметь решающую роль. Но, после пятой позиции после запятой, бюджет, такую ошибку переварит. Она не критична. Тут стоит поговорить о бесконечной периодической дроби, что тривиально. И о бесконечной непериодической, пример - число ПИ.
Тут интересный вопрос. Число ПИ, является плавающей константой (после запятой, конечно) отношения длины окружности к длине её диаметра. Тут используется только деление, причём тот случай, когда один параметр делиться на другой и их длины (отрезки) не соответствуют друг другу. Результат - бесконечная не периодическая дробь.
Maxxtro Приичем тут Пи? Это иррациональное число, т.е. число которое нельзя получить делением одного целого (и даже рационального) на другое. В данном случае с ними врядли получится столкнутся
Maxxtro Ну так я не понял, к чему это? Иррациональных чисел из рациональных путем арифметических действий (+,-,*,/) не получить... И в принципе их даже представить в ЦВМ не так просто, так что их можно рассматривать как числа с конечным числом цифр после запятой. А с рациональными числами тоже не все так просто, как может показаться. Например 0.1, вполне нормальная десятичная дробь, но компьютер то оперирует двоичными числами, а в двоичном виде получается уже бесконечная периодическая дробь... Так же есть языки программирования, в которых есть тип дробь, не число с плавающей точкой, а именно дробь с числителем и знаменателем, и арифметические операции выполняются по всем правилам (по крайней мере для целых чисел и таких же дробей, на счет плавающей точки не уверен), это например Smalltalk.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения