Лекция
Привет, мой друг, тебе интересно узнать все про округление чисел, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое округление чисел , настоятельно рекомендую прочитать все из категории Арифметика.
Округление означает замену числа приблизительным значением , которое имеет более короткое, простое или более явное представление. Например, замена $ 23,4476 на $ 23,45 , дроби 312/937 на 1/3 или выражения √2 на 1,414 .Числа округляют, когда полная точность не нужна или невозможна.
Округление часто применяется для получения значения, которое легче сообщать и передавать, чем исходное. Округление также может быть важным для избежания вводящего в заблуждение точного сообщения о вычисленном числе, измерении или оценке; например, количество, которое было вычислено как 123456, но известно, что оно имеет точность только в пределах нескольких сотен единиц, обычно лучше указывать как «около 123500 ».
С другой стороны, округление точных чисел приведет к некоторой ошибке округления в сообщаемом результате. Округление практически неизбежно при сообщении большого количества вычислений – особенно при делении двух чисел в целочисленной или арифметике с фиксированной точкой ; при вычислении математических функций, таких как квадратные корни , логарифмы и синусы ; или при использовании представления с плавающей точкой с фиксированным числом значащих цифр . В последовательности вычислений эти ошибки округления обычно накапливаются , и в некоторых плохо обусловленных случаях они могут сделать результат бессмысленным.
Точное округление трансцендентных математических функций затруднено, поскольку количество дополнительных цифр, которые необходимо вычислить для решения вопроса о том, округлять вверх или вниз, не может быть известно заранее. Эта проблема известна как « дилемма составителя таблиц ».
Округление имеет много общего с квантованием , которое происходит, когда физические величины необходимо кодировать числами или цифровыми сигналами .
Волнистый знак равенства ( ≈ , приблизительно равно ) иногда используется для обозначения округления точных чисел, например, 9,98 ≈ 10. Этот знак был введен Альфредом Джорджем Гринхиллом в 1892 году. [ 1 ]
Идеальные характеристики методов округления включают в себя:
Поскольку обычно невозможно, чтобы метод удовлетворял всем идеальным характеристикам, существует множество различных методов округления.
Как правило, округление идемпотентно ; [ 2 ] т. е. после того, как число было округлено, его повторное округление до той же точности не изменит его значение. Функции округления также являются монотонными ; т. е. округление двух чисел до той же абсолютной точности не поменяет их порядок (но может дать то же значение). В общем случае дискретного диапазона они являются кусочно-постоянными функциями .
Типичные проблемы округления включают в себя:
Проблема округления | Пример ввода | Результат | Критерий округления |
---|---|---|---|
Приближение иррационального числа дробью | π | 22/7 | 1-значный знаменатель |
Приближение рационального числа дробью с меньшим знаменателем | 399 / 941 | 3 / 7 | 1-значный знаменатель |
Приближение дроби дробным десятичным числом | 5 / 3 | 1.6667 | 4 знака после запятой |
Приближение дробного десятичного числа к единице с меньшим количеством цифр | 2.1784 | 2.18 | 2 знака после запятой |
Приближение десятичного целого числа целым числом с большим количеством конечных нулей | 23217 | 23200 | 3 значимые цифры |
Приближение большого десятичного целого числа с использованием научной записи | 300999999 | 3,01 × 10 8 | 3 значимые цифры |
Приближение значения на кратное указанной величине | 48.2 | 45 | Кратно 15 |
Приближение каждого из конечного набора действительных чисел целым числом так, чтобы сумма округленных чисел равнялась округленной сумме чисел [ nb 1 ] | {312,412,512} | {0, 0, 1} | Сумма округленных элементов равна округленной сумме элементов. |
Самая простая форма округления — замена произвольного числа целым числом. Все следующие режимы округления являются конкретными реализациями абстрактной одноаргументной процедуры «round()». Это истинные функции (за исключением тех, которые используют случайность).
Эти четыре метода называются направленным округлением до целого числа , поскольку смещения от исходного числа x до округленного значения y все направлены к одному и тому же предельному значению (0, +∞ или −∞) или от него . Направленное округление используется в интервальной арифметике и часто требуется в финансовых расчетах.
Если x положительно, округление вниз равнозначно округлению в сторону нуля, а округление вверх равнозначно округлению от нуля. Если x отрицательно, округление вниз равнозначно округлению от нуля, а округление вверх равнозначно округлению к нулю. В любом случае, если x — целое число, y — это просто x .
Когда много вычислений выполняются последовательно, выбор метода округления может иметь очень существенное влияние на результат. Известный случай связан с новым индексом, установленным Ванкуверской фондовой биржей в 1982 году. Первоначально он был установлен на уровне 1000,000 (с точностью до трех знаков после запятой), а через 22 месяца упал примерно до 520, хотя рынок, казалось, рос. Проблема была вызвана тем, что индекс пересчитывался тысячи раз в день и всегда усекался (округлялся) до трех знаков после запятой, таким образом, что ошибки округления накапливались. Пересчет индекса за тот же период с округлением до ближайшей тысячной вместо усечения исправил значение индекса с 524,811 до 1098,892. [ 3 ]
В приведенных ниже примерах sgn( x ) относится к знаковой функции, примененной к исходному числу x .
Можно округлить в меньшую сторону (или взять меньшее значение , или округлить в сторону отрицательной бесконечности ): y — наибольшее целое число, не превосходящее x .
у=флоог(х)=⌊х⌋=−⌈−х⌉
Например, 23,7 округляется до 23, а −23,2 округляется до −24.
Можно также округлить в большую сторону (или взять потолок , или округлить в сторону положительной бесконечности ): y — наименьшее целое число, которое не меньше x .
у=потолок(х)=⌈х⌉=−⌊−х⌋
Например, 23,2 округляется до 24, а −23,7 округляется до −23.
Можно также округлить до нуля (или усечь , или округлить от бесконечности ): y — это целое число, ближайшее к x, такое, что оно находится между 0 и x (включительно); то есть y — это целая часть x , без цифр дробной части.
у=усекать(х)=знак(х)⌊|х|⌋=−знак(х)⌈−|х|⌉={⌊х⌋х≥0⌈х⌉х<0
Например, 23,7 округляется до 23, а −23,7 округляется до −23.
Можно также округлить от нуля (или округлить к бесконечности ): y — это целое число, ближайшее к 0 (или, что эквивалентно, к x ), такое, что x находится между 0 и y (включительно).
Например, 23,2 округляется до 24, а −23,2 округляется до −24.
Эти шесть методов называются округлением до ближайшего целого числа . Округление числа x до ближайшего целого числа требует некоторого правила разрешения конфликтов для тех случаев, когда x находится точно посередине между двумя целыми числами, то есть когда дробная часть x равна точно 0,5.
Если бы не дробные части размером 0,5, ошибки округления, вносимые методом округления до ближайшего целого, были бы симметричными: для каждой дроби, которая округляется в меньшую сторону (например, 0,268), существует дополнительная дробь (а именно, 0,732), которая округляется в большую сторону на ту же величину.
При округлении большого набора чисел с фиксированной точкой с равномерно распределенными дробными частями ошибки округления по всем значениям, с исключением тех, которые имеют дробную часть 0,5, статистически компенсируют друг друга. Это означает, что ожидаемое (среднее) значение округленных чисел равно ожидаемому значению исходных чисел при удалении из набора чисел с дробной частью 0,5.
На практике обычно используются числа с плавающей точкой , которые имеют еще больше вычислительных нюансов, поскольку они неравномерно распределены.
Округлить число до определенной цифры (знака), значит заменить его близким по значению числом с нулями на конце.
Натуральные числа округляют до десятков, сотен, тысяч и т.д. Названия цифр в разрядах натурального числа можно вспомнить в теменатуральные числа.
В зависимости от того, до какого разряда надо округлить число, мы заменяем нулями цифру в разрядах единиц, десятков и т.д.
Если число округляется до десятков, то нулями заменяем цифру в разряде единицы.
Если число округляется до сотен, то цифра ноль должна стоять и в разряде единиц, и в разряде десятков.
Число, полученное при округлении, называют приближенным значением данного числа.
Записывают результат округления после специального знака «≈». Этот знак читается как «приближенно равно».
При округлении натурального числа до какого-либо разряда надо воспользоваться правилами округления.
Поясним на примере. Округлим 57 861 до тысяч. Выполним первые два пункта из правил округления.
После подчеркнутой цифры стоит цифра 8, значит к цифре разряда тысяч (у нас это 7) прибавим 1, а все цифры, отделенные вертикальной чертой заменим нулями.
Теперь округлим 756 485 до сотен.
Округлим 464 до десятков.
46|4 ≈ 360 - в разряде единиц стоит 4, поэтому мы оставляем 6 в разряде десятков без изменений.
На числовой оси число 464 заключено между двумя «круглыми» числами 460 и 470. Эти два числа называют приближенными значениями числа 464 с точностью до десятков.
Число 460 - приближенное значение с недостатком, а число 470 - приближенное значение с избытком.
В нашем случае, округлив 464 до десятков, мы получили, 460 - приближенное значение с недостатком.
Округленные результаты часто записывают без нулей, добавляя сокращения «тыс.» (тысяча), «млн.» (миллион) и «млрд.» (миллиард).
Примеры:
Округление также применяется для прикидочной проверки ответа в вычислениях.
Пусть нам нужно посчитать: 794 • 52 =
До точного вычисления сделаем прикидку ответа, округлив множители до наивысшего разряда.
794 • 52 ≈ 800 • 50 ≈ 40 000
Делаем вывод, что ответ будет близок к 40 000.
794 • 52 = 41 228
Аналогично можно выполнять прикидку округлением и при делении чисел.
Можно округлить половину вверх (или округлить половину в сторону положительной бесконечности ), правило разрешения конфликтов, которое широко используется во многих дисциплинах. Об этом говорит сайт https://intellect.icu . [ требуется ссылка ] То есть, половинные значения x всегда округляются вверх. Если дробная часть x равна точно 0,5, то y = x + 0,5
Например, 23,5 округляется до 24, а −23,5 округляется до −23.
В некоторых языках программирования (например, Java и Python) термин «half up» используется для обозначения округления половины от нуля , а не округления половины в сторону положительной бесконечности . [ 4 ] [ 5 ]
Этот метод требует проверки только одной цифры для определения направления округления в дополнительном коде и подобных представлениях.
Можно также округлить половину вниз (или округлить половину в сторону отрицательной бесконечности ) в отличие от более распространенного округления половины вверх . Если дробная часть x равна точно 0,5, то y = x − 0,5
Например, 23,5 округляется до 23, а −23,5 округляется до −24.
В некоторых языках программирования (например, Java и Python) термин «half down» используется для обозначения округления половины в сторону нуля , а не округления половины в сторону отрицательной бесконечности .
Можно также округлить половину в сторону нуля (или округлить половину от бесконечности ) в отличие от обычного округления половины от нуля . Если дробная часть x равна точно 0,5, то y = x − 0,5, если x положительно, и y = x + 0,5, если x отрицательно.
Например, 23,5 округляется до 23, а −23,5 округляется до −23.
Этот метод обрабатывает положительные и отрицательные значения симметрично, и поэтому свободен от общего положительного/отрицательного смещения, если исходные числа являются положительными или отрицательными с равной вероятностью. Однако он все еще имеет смещение в сторону нуля.
Можно также округлить половину от нуля (или округлить половину к бесконечности ), это правило разрешения ничьих, которое обычно изучают и используют, а именно: если дробная часть x равна точно 0,5, то y = x + 0,5 , если x положительно, и y = x − 0,5, если x отрицательно.
Например, 23,5 округляется до 24, а −23,5 округляется до −24.
Это может быть более эффективно на компьютерах, которые используют представление знака-величины для округляемых значений, поскольку для определения того, округляется ли оно вверх или вниз, необходимо учитывать только первую пропущенную цифру. Это один из методов, используемых при округлении до значимых цифр из-за его простоты.
Этот метод, также известный как коммерческое округление ,обрабатывает положительные и отрицательные значения симметрично, и поэтому свободен от общего положительного/отрицательного смещения, если исходные числа являются положительными или отрицательными с равной вероятностью. Однако он все еще имеет смещение от нуля.
Его часто используют для конвертации валют и округления цен (когда сумма сначала конвертируется в наименьшую значимую часть валюты, например, в центы евро), поскольку его легко объяснить, просто рассмотрев первую дробную цифру, независимо от дополнительных цифр точности или знака суммы (для строгой эквивалентности между плательщиком и получателем суммы).
Можно также округлить половину до четного числа , правило разрешения конфликтов без положительного/отрицательного смещения и без смещения в сторону/от нуля. Согласно этому соглашению, если дробная часть x равна 0,5, то y является четным целым числом, ближайшим к x . Таким образом, например, 23,5 становится 24, как и 24,5; однако −23,5 становится −24, как и −24,5. Эта функция минимизирует ожидаемую ошибку при суммировании по округленным числам, даже когда входные данные в основном положительные или в основном отрицательные, при условии, что они не являются ни в основном четными, ни в основном нечетными.
Этот вариант метода округления к ближайшему также называется сходящимся округлением , статистическим округлением , голландским округлением , гауссовым округлением , округлением «чет-нечет»или банковским округлением .
Это режим округления по умолчанию, используемый в операциях IEEE 754 для результатов в двоичных форматах с плавающей точкой.
Устраняя смещение, повторное сложение или вычитание независимых чисел, как при одномерном случайном блуждании , даст округленный результат с ошибкой, которая имеет тенденцию расти пропорционально квадратному корню из числа операций, а не линейно.
Однако это правило искажает распределение, увеличивая вероятность четных значений по сравнению с нечетными. Обычно это менее важно , чем смещения, которые устраняются этим методом.
Можно также округлить половину до нечетного числа , аналогичное правило для округления половины до четного числа. При таком подходе, если дробная часть x равна 0,5, то y — нечетное целое число, ближайшее к x . Таким образом, например, 23,5 становится 23, как и 22,5; в то время как −23,5 становится −23, как и −22,5.
Этот метод также свободен от положительного/отрицательного смещения и смещения в сторону/от нуля, при условии, что округляемые числа не являются в основном четными или в основном нечетными. Он также разделяет свойство округления половины к четному, искажая исходное распределение, поскольку увеличивает вероятность нечетных чисел по сравнению с четными. Этот метод использовался для банковских балансов в Соединенном Королевстве , когда оно перешло на десятичную систему исчисления
Этот вариант почти никогда не используется в вычислениях, за исключением ситуаций, когда требуется избежать увеличения масштаба чисел с плавающей точкой, которые имеют ограниченный диапазон экспоненты. При округлении половины до четного не бесконечное число округляется до бесконечности, а небольшое ненормальное значение округляется до нормального ненулевого значения. По сути, этот режим предпочитает сохранять существующий масштаб связанных чисел, избегая результатов, выходящих за пределы диапазона, когда это возможно для систем счисления с четным основанием (таких как двоичная и десятичная).
Этот режим округления используется для того, чтобы избежать получения потенциально неправильного результата после нескольких округлений . Этого можно достичь, если все округления, кроме последнего, выполняются с использованием RPSP, и только последнее округление использует запрошенный извне режим.
В десятичной арифметике избегаются конечные цифры 0 и 5; если есть выбор между числами с наименее значащей цифрой 0 или 1, 4 или 5, 5 или 6, 9 или 0, то должна быть выбрана цифра, отличная от 0 или 5; в противном случае выбор произволен. IBM определяет, что в последнем случае должна быть выбрана цифра с меньшей величиной. [ 9 ] RPSP может применяться с шагом между двумя последовательными округлениями, равным одной цифре (например, округление до 1/10 может быть применено после округления до 1/100). Например, при округлении до целого числа,
В примере из раздела « Двойное округление » округление 9,46 до одного десятичного знака дает 9,4, округление которого до целого числа в свою очередь дает 9.
В двоичной арифметике это округление также называется «округление до нечетного» (не путать с « округление половины до нечетного »). Например, при округлении до 1/4 (0,01 в двоичной системе),
Для получения правильных результатов каждый шаг округления должен удалять не менее 2 двоичных цифр, в противном случае могут появиться неправильные результаты. Например,
Если ошибочный средний шаг удален, то окончательное округление до целого числа округляет 3,25 до правильного значения 3.
RPSP реализован аппаратно в IBM zSeries и pSeries .
Один из методов, более неясный, чем большинство, заключается в чередовании направлений при округлении числа с дробной частью 0,5. Все остальные округляются до ближайшего целого числа. Всякий раз, когда дробная часть равна 0,5, чередуйте округление вверх или вниз: для первого появления дробной части 0,5 округляйте вверх, для второго появления округляйте вниз и т. д. В качестве альтернативы округление первой дробной части 0,5 может быть определено случайным начальным числом . «Вверх» и «вниз» могут быть любыми двумя методами округления, которые противоположны друг другу — к положительной бесконечности и от нее или к нулю и от нее.
Если вхождения 0,5 дробных частей происходят значительно чаще, чем перезапуск вхождения "подсчета", то это фактически без смещения. С гарантированным нулевым смещением это полезно, если числа должны быть суммированы или усреднены.
Если дробная часть x равна 0,5, выбираем y случайным образом между x + 0,5 и x − 0,5 с равной вероятностью. Все остальные округляются до ближайшего целого числа.
Подобно округлению половины до четного и округлению половины до нечетного, это правило по сути свободно от общей предвзятости, но оно также справедливо среди четных и нечетных значений y . Преимущество перед альтернативным разрешением тай-брейка заключается в том, что последнее направление округления дробной части 0,5 не нужно «запоминать».
Округление следующим образом до ближайшего целого числа в сторону отрицательной бесконечности и ближайшего целого числа в сторону положительной бесконечности с вероятностью, зависящей от близости, называется стохастическим округлением и в среднем даст несмещенный результат. [ 10 ]
Например, 1,6 будет округлено до 1 с вероятностью 0,4 и до 2 с вероятностью 0,6.
Стохастическое округление может быть точным в том смысле, в котором функция округления никогда не может быть точной. Например, предположим, что кто-то начал с 0 и добавил к нему 0,3 сто раз, округляя нарастающую сумму между каждым добавлением. Результатом будет 0 при обычном округлении, но при стохастическом округлении ожидаемый результат будет 30, что является тем же значением, что и без округления. Это может быть полезно в машинном обучении , где обучение может использовать арифметику низкой точности итеративно. [ 10 ] Стохастическое округление также является способом достижения одномерного сглаживания .
Ценить | Функциональные методы | Рандомизированные методы | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Направленное закругление | Округлить до ближайшего | Округление для подготовки к более короткой точности | Поочередный тай-брейк | Случайный тай-брейк | Стохастический | ||||||||||||
Вниз (к − ∞ ) |
Вверх (к + ∞ ) |
К 0 | Вдали от 0 | Половина вниз (в направлении − ∞ ) |
Половина вверх (в сторону + ∞ ) |
Половина к 0 | Половина от 0 | Половина к четному | Половина к нечетному | Средний | СД | Средний | СД | Средний |
продолжение следует...
Часть 1 Округление чисел (вниз. вверх, случайное, до числа, логарифмическое, отраслевое)
Часть 2 Округление до других значений - Округление чисел (вниз. вверх, случайное,
Часть 3 Другие стандарты округления - Округление чисел (вниз. вверх, случайное, до
Если я не полностью рассказал про округление чисел? Напиши в комментариях Надеюсь, что теперь ты понял что такое округление чисел и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Арифметика
Комментарии
Оставить комментарий
Арифметика
Термины: Арифметика