From Wikipedia, the free encyclopedia
An off-by-one error or off-by-one bug (known by acronyms OBOE, OBO, OB1 and OBOB) is a logic error involving the discrete equivalent of a boundary condition. It often occurs in computer programming when an iterative loop iterates one time too many or too few. This problem could arise when a programmer makes mistakes such as using «is less than or equal to» where «is less than» should have been used in a comparison, or fails to take into account that a sequence starts at zero rather than one (as with array indices in many languages). This can also occur in a mathematical context.
Cases[edit]
Looping over arrays[edit]
Consider an array of items, and items m through n (inclusive) are to be processed. How many items are there? An intuitive answer may be n − m, but that is off by one, exhibiting a fencepost error; the correct answer is
(n – m) + 1.
For this reason, ranges in computing are often represented by half-open intervals; the range from m to n (inclusive) is represented by the range from m (inclusive) to n + 1 (exclusive) to avoid fencepost errors. For example, a loop that iterates five times (from 0 to 4 inclusive) can be written as a half-open interval from 0 to 5:
for (index = 0; index < 5; index++) { /* Body of the loop */ }
The loop body is executed first of all with index equal to 0; index then becomes 1, 2, 3, and finally 4 on successive iterations. At that point, index becomes 5, so index < 5 is false and the loop ends. However, if the comparison used were <= (less than or equal to), the loop would be carried out six times: index takes the values 0, 1, 2, 3, 4, and 5. Likewise, if index were initialized to 1 rather than 0, there would only be four iterations: index takes the values 1, 2, 3, and 4. Both of these alternatives can cause off-by-one errors.
Another such error can occur if a do-while loop is used in place of a while loop (or vice versa.) A do-while loop is guaranteed to run at least once.
Array-related confusion may also result from differences in programming languages. Numbering from 0 is most common, but some languages start array numbering with 1. Pascal has arrays with user-defined indices. This makes it possible to model the array indices after the problem domain.
Fencepost error[edit]
A fencepost error (occasionally called a telegraph pole, lamp-post, or picket fence error) is a specific type of off-by-one error. An early description of this error appears in the works of Vitruvius.[1] The following problem illustrates the error:
If you build a straight fence 30 feet long with posts spaced 3 feet apart, how many posts do you need?
A straight fence with 10 sections requires 11 posts. More generally, n sections would require n + 1 posts.
The common answer of 10 posts is wrong. This response comes from dividing the length of the fence by the spacing apart from each post, with the quotient being erroneously classified as the number of posts. In actuality, the fence has 10 sections and 11 posts.
In this scenario, a fence with n sections will have n + 1 posts. Conversely, if the fence contains n posts, it will contain n − 1 sections. This relationship is important to consider when dealing with the reverse error. The reverse error occurs when the number of posts is known and the number of sections is assumed to be the same. Depending on the design of the fence, this assumption can be correct or incorrect.
The following problem demonstrates the reverse error:
If you have n posts, how many sections are there between them?
The interpretation for the fence’s design changes the answer to this problem. The correct number of sections for a fence is n − 1 if the fence is a free-standing line segment bounded by a post at each of its ends (e.g., a fence between two passageway gaps), n if the fence forms one complete, free-standing loop (e.g., enclosure accessible by surmounting, such as a boxing ring), or n + 1 if posts do not occur at the ends of a line-segment-like fence (e.g., a fence between and wall-anchored to two buildings). The precise problem definition must be carefully considered, as the setup for one situation may give the wrong answer for other situations. Fencepost errors come from counting things rather than the spaces between them, or vice versa, or by neglecting to consider whether one should count one or both ends of a row.
Fencepost errors can also occur in units other than length. For example, the Time Pyramid, consisting of 120 blocks placed at 10-year intervals between blocks, is scheduled to take 1,190 years to build (not 1,200), from the installation of the first block to the last block. One of the earliest fencepost errors involved time, where the Julian calendar originally calculated leap years incorrectly, due to counting inclusively rather than exclusively, yielding a leap year every three years rather than every four.
«Fencepost error» can, in rare occasions, refer to an error induced by unexpected regularities in input values,[2] which can (for instance) completely thwart a theoretically efficient binary tree or hash function implementation. This error involves the difference between expected and worst case behaviours of an algorithm.
In larger numbers, being off by one is often not a major issue. In smaller numbers, however, and specific cases where accuracy is paramount committing an off-by-one error can be disastrous. Sometimes such an issue will also be repeated and, therefore, worsened, by someone passing on an incorrect calculation if the following person makes the same kind of mistake again (of course, the error might also be reversed).
An example of this error can occur in the computational language MATLAB with the linspace() linear interpolation function, whose parameters are (lower value, upper value, number of values) and not (lower value, upper value, number of increments). A programmer who misunderstands the third parameter to be the number of increments might hope that linspace(0,10,5) would achieve a sequence [0, 2, 4, 6, 8, 10] but instead would get [0, 2.5, 5, 7.5, 10].
Security implications[edit]
A common off-by-one error which results in a security-related bug is caused by misuse of the C standard library strncat routine. A common misconception with strncat is that the guaranteed null termination will not write beyond the maximum length. In reality it will write a terminating null character one byte beyond the maximum length specified. The following code contains such a bug:
void foo (char *s) { char buf[15]; memset(buf, 0, sizeof(buf)); strncat(buf, s, sizeof(buf)); // Final parameter should be: sizeof(buf)-1 }
Off-by-one errors are common in using the C library because it is not consistent with respect to whether one needs to subtract 1 byte – functions like fgets() and strncpy will never write past the length given them (fgets() subtracts 1 itself, and only retrieves (length − 1) bytes), whereas others, like strncat will write past the length given them. So the programmer has to remember for which functions they need to subtract 1.
On some systems (little endian architectures in particular) this can result in the overwriting of the least significant byte of the frame pointer. This can cause an exploitable condition where an attacker can hijack the local variables for the calling routine.
One approach that often helps avoid such problems is to use variants of these functions that calculate how much to write based on the total length of the buffer, rather than the maximum number of characters to write. Such functions include strlcat and strlcpy, and are often considered «safer» because they make it easier to avoid accidentally writing past the end of a buffer. (In the code example above, calling strlcat(buf, s, sizeof(buf)) instead would remove the bug.)
See also[edit]
- Boundary-value analysis
- Pigeonhole principle
- Rounding error
- Zero-based numbering
References[edit]
Citations[edit]
- ^ Moniot, Robert K., Who first described the «fence-post error?», Fordham University, archived from the original on 2016-03-05, retrieved 2016-07-07.
- ^ Raymond, Eric. «The Jargon File». Retrieved 17 May 2021.
Sources[edit]
- An earlier version of this article was based on fencepost error at FOLDOC, used with permission.
- Dijkstra, Edsger Wybe (May 2, 2008). «Why numbering should start at zero (EWD 831)». E. W. Dijkstra Archive. University of Texas at Austin. Retrieved 2011-03-16.
- In the Common Weakness Enumeration system this issue is listed as CWE-193: Off-by-one Error
Further reading[edit]
- Parker, Matt (2021). Humble Pi: When Math Goes Wrong in the Real World. Riverhead Books. ISBN 978-0593084694.
Среднее квадратическое отклонение результата наблюдения Средняя квадратическая (квадратичная) погрешность (ошибка) единичного измерения. Среднеквадратичная погрешность (ошибка) стандарт измерений Параметр функции распределения результатов наблюдений, характеризующий их рассеивание и равный корню квадратному из дисперсии результата наблюдения (с положительным знаком) [c.95]
ОШИБКА ЕДИНИЧНОГО ИЗМЕРЕНИЯ
[c.66]
Затем находятся дисперсия и стандартная ошибка единичного наблюдения. Из числа наблюдений исключаются единичные наблюдения, у которых отклонение от среднего значения больше За. После этого проводится второе приближение, для чего определяется среднее арифметическое значение от оставшихся измерений и определяется новое значение стандартной ошибки единичного измерения и снова определяется величина предельной ошибки Зст.
[c.31]
Таким образом, в данном примере оказалось, что ошибка среднего арифметического в 5 раз меньше, чем ошибка единичных измерений, из которых складывается среднее арифметическое.
[c.33]
Среднее квадратическое значение ошибки единичного измерения углов а и i составляет 0а = 45″ и Стз = 60″.
[c.314]
Указание только одной величины ошибки единичного измерения 5 без соответствующей ей доверительной вероятности в значительной мере лишено смысла, так как при этом неясно, насколько надежны полученные данные [6].
[c.32]
Вероятная ошибка единичного измерения. ……..
[c.195]
Рассчитанная по (8) и (9) вероятная ошибка единичного измерения скорости звука по изобарам при температурах 825—1275° К и давлениях 0,358—5,303 атм изменяется от 0,32 до 0,34%. Среднеквадратичное отклонение экспериментальных данных по изобарам в указанном диапазоне температур и давлений не превышает 0,3%.
[c.116]
Определение нескольких экспериментальных точек кривой к=к Р ) позволяет свести к минимуму возможные ошибки при единичных измерениях. Полученные в опытах [38, 71] значения параметров 6 и V сопоставлялись с расчетом. В табл. 17 приведены результаты эксперимента. На основании эксперимента были рассчитаны значения к/г и и представлены на фиг. 23 в виде точек. Результаты расчета и эксперимента удовлетворительно совпадают.
[c.47]
Максимальная относительная флуктуационная ошибка ( Ар/р)фд единичного измерения плотности газа может быть вычислена по формуле
[c.282]
На рис. 4-2 представлены изменение во времени истинного значения исследуемого параметра х и случайная погрешность системы измерений этого параметра Ах. Таким образом, наблюдаемая при измерении величина содержит как ошибки собственно измерений, так и ошибки в определении исследуемого параметра, вызванные его отклонениями от равновесного состояния. Как видно из графика, единичный замер может совпасть как с максимальным отклонением исследуемого параметра, так и с максимальной величиной ошибки прибора. 4—1368 49
[c.49]
Случайная ошибка среднего арифметического ряда наблюдений в 1 /I/» п, раз меньше ошибки единичного наблюдения (измерения). Если принять ошибку единичного наблюдения за 1,0, то при четырех наблюдениях она снизится в 2 раза, при девяти — в 3 раза, при 16— в 4 раза и т. д. Таким образом, при очень большом числе наблюдений случайная ошибка среднего арифметического стремится к нулю. Само собой разумеется, что никакое увеличение числа наблюдений не спасает нас от систематических ошибок. Негативная сторона большого числа наблюдений состоит в том, что они вызывают удорожание опыта и рост его продолжительности.
[c.73]
Средняя абсолютная квадратичная ошибка единичного результата при п измерениях представляется зависимостью
[c.248]
По результатам измерений величин d и Л установлено среднее значение диаметра цилиндра (i p 9.12 мм, среднее значение высоты цилиндра Лдо = 16,22 мм, средние квадратические значения ошибок единичных измерений диаметра и высоты цилиндра = 0,008 мм, a i — 0,012 мм. Средние квадратические ошибки определения средних арифметических значений диаметра d и высоты h цилиндра [c.314]
Метод позволяет получать небольшую погрешность отсчета и определять ошибку всей шкалы. При единичном измерении ненадежность i=ih3 мк, а при серии— = > 1,5 мк. Проверка этим способом, в противоположность проверке по концевым мерам, может производиться при движении стержня в обоих направлениях.
[c.378]
Ошибка единичного основного шага /е— разность между его действительным и предписанным значениями. Это измерение безотносительно, т. е. независимо от эксцентрицитета основной окружности относительно оси вращения. Единичная ошибка окружного шага f — разность между действительным размером единичного окружного шага и его предписанным размером, измеренная по дуге делительной окружности с центром, лежащим на оси колеса.
[c.637]
Погрешности метода происходят вследствие ошибок или недостаточной разработанности метода измерений. Сюда же можно отнести неправомерную экстраполяцию свойства, полученного в результате единичного измерения, на весь измеряемый объект. Например, принимая решение о годности вала по единичному измерению, можно допустить ошибку, поскольку не учитываются такие погрещности формы, как отклонения от цилиндричности, круглости, профиля продольного сечения и др. Поэтому для исключения такого рода систематических погрешностей в методике измерений рекомендуется проведение измерений в нескольких местах деталей и взаимно-перпендикулярных направлениях.
[c.271]
Остановимся на указанном вопросе несколько подробнее. Допустим, что исследуется зависимость сопротивления от расхода. Так как расход и сопротивление измеряются разными приборами, имеющими каждый свои случайные ошибки, полученные величины не будут истинными. Можно, однако, полагать, что каждое единичное значение расхода Xi является истинным, а случайно, т. е. имеет ошибку, только сопротивление. Если бы сопротивление не зависело от расхода, подобное допущение не привело бы нас к ошибке, так как безразлично, к какому значению расхода отнесено данное сопротивление. Поскольку, однако, такая зависимость есть, ошибка измерения расхода х приведет к появлению дополнительной ошибки величины сопротивления
[c.89]
Осуществим первую оценку достоверности измерений. Уже указывалось, что единичное наблюдение признается промахом или грубой ошибкой, если его отклонение от среднего уровня больше За. В нашем случае
[c.95]
Средняя арифметическая и средняя квадратичная ошибки. При проведении экспериментов каждый единичный опыт следует повторить достаточное число раз, чтобы случайные ошибки результата были незначительными по сравнению с систематическими. При проведении п измерений единичного результата среднее арифметическое величин 1, 2, из,. .., 71 составит [c.247]
Публикации Купфера в высшей степени трудны для чтения не только потому, что они содержат многочисленные ошибки, часть из которых была замечена другими, и значительное количество неясных рассуждений ), но также потому, что он избрал путь представления упругости твердого тела в терминах одной постоянной, и эта постоянная введена исключительно неудобным способом. Использование постоянной, обозначенной через б, указывает на возвращение к состоянию знаний начала XIX века, так как ее значение зависело от формы поперечного сечения, а также в неявном виде от единицы измерения приложенной силы. Для продольного нагружения цилиндрического стержня постоянная б определялась как удлинение, вызываемое единичной силой, приложенной к круглому цилиндрическому образцу единичной длины с единичным радиусом, т. е. 6=1/(ir ). Для стержня квадратного поперечного сечения постоянная б определялась как удлинение, вызываемое единичной силой, приложенной к стержню единичной длины с единичными сторонами поперечного сечения. Для стержня прямоугольного поперечного сечения б=1/ . Для последнего вида стержней в некоторых случаях, но, к сожалению, не всегда, Купфер использовал символ б. Он представил некоторые из своих результатов в русских фунтах и русских дюймах ). В других случаях он выражал б в сантиметрах, приложенную нагрузку — в граммах, а в одном случае он использовал английские единицы измерения. Как косвенно признал даже сам Купфер в подстрочном
[c.392]
Единичная ошибка шага (шага делительной окружности) — разность между действительным и предписанным размерами единичного шага делительной окружности, измеренная по делительной окружности, с центром, совпадающим с осью колеса.
[c.311]
Яя шага Измеренное значе ие в мк Единичная ошибка шага в мк Суммарная ошибка в мк Приращение шага в мк
[c.642]
Используя данные о классе точности применявшихся приборов и отдельных узлов измерительной схемы, рассчитывали погрешность определения теплоемкости относительная ошибка единичного измерения оказалась равной 2%. Была вычислена также дисперсия многочисленных экспериментальных данных, полученных описанным методом. Найденная в результате статистической обработки погрешность, определяемая двухсигмовым интервалом, равна 5%. Такое различие вызвано тем, что в аналитическом расчете ошибки не
[c.73]
При измерении зубчатых колес пли делительных дисков для установки используется угловой рычаг, который устанавливается по профилю зуба и при повороте стола перед каждым измерением ставится в нулевое положение. При повороте теодолита отметки па нем и коллиматоре совмещаются. Затем отсчитывают углы. После этого поворачивают стол от зуба к зубу илн на определенное число шагов. Прн точных проверках рычажный прибор снова устанавливается на ноль и настривают коллиматор с теодолито.м. Разность между отсчетами по лимбу и предписанными значениями дает ошибку шага. Ненадежность единичного измерения примерно (0,01го+ ) мк, где г а — в мм.
[c.643]
Измерения пробного колеса должны производиться с наибольшей возможной точностью. Построение графика накоплен ной ошибки окрул<ного шага по результатам обработки измерений единичных шагов недопустимо необходимо непосредственное измерение накопленных ошибок, например при помощи теодолита.
[c.634]
О непосредственном измерении сум.марнон ошибки шага см. 63—[ 12]. Так как при суммировании единичных ошибок их ошибки также алгебраически сум.мируются, то целесообразно суммарную ошибку опре-
[c.642]
Погре́шность измере́ния — оценка отклонения величины измеренного значения величины от её истинного значения. Погрешность измерения является характеристикой (мерой) точности измерения.
Поскольку выяснить с абсолютной точностью истинное значение любой величины невозможно, то невозможно и указать величину отклонения измеренного значения от истинного. (Это отклонение принято называть ошибкой измерения. В ряде источников, например, в БСЭ, термины ошибка измерения и погрешность измерения используются как синонимы.) Возможно лишь оценить величину этого отклонения, например, при помощи статистических методов. При этом за истинное значение принимается среднестатистическое значение, полученное при статистической обработке результатов серии измерений. Это полученное значение не является точным, а лишь наиболее вероятным. Поэтому в измерениях необходимо указывать, какова их точность. Для этого вместе с полученным результатом указывается погрешность измерений. Например, запись T=2.8±0.1 c. означает, что истинное значение величины T лежит в интервале от 2.7 с. до 2.9 с. некоторой оговоренной вероятностью (см. доверительный интервал, доверительная вероятность, стандартная ошибка).
В 2006 году на международном уровне был принят новый документ, диктующий условия проведения измерений и установивший новые правила сличения государственных эталонов. Понятие «погрешность» стало устаревать, вместо него было введено понятие «неопределенность измерений».
Содержание
- 1 Определение погрешности
- 2 Классификация погрешностей
- 2.1 По форме представления
- 2.2 По причине возникновения
- 2.3 По характеру проявления
- 2.4 По способу измерения
- 3 См. также
- 4 Литература
Определение погрешности
В зависимости от характеристик измеряемой величины для определения погрешности измерений используют различные методы.
- Метод Корнфельда, заключается в выборе доверительного интервала в пределах от минимального до максимального результата измерений, и погрешность как половина разности между максимальным и минимальным результатом измерения:
- Средняя квадратическая погрешность:
- Средняя квадратическая погрешность среднего арифметического:
Классификация погрешностей
По форме представления
- Абсолютная погрешность — ΔX является оценкой абсолютной ошибки измерения. Величина этой погрешности зависит от способа её вычисления, который, в свою очередь, определяется распределением случайной величины Xmeas. При этом равенство:
ΔX = | Xtrue − Xmeas | ,
где Xtrue — истинное значение, а Xmeas — измеренное значение, должно выполняться с некоторой вероятностью близкой к 1. Если случайная величина Xmeas распределена по нормальному закону, то, обычно, за абсолютную погрешность принимают её среднеквадратичное отклонение. Абсолютная погрешность измеряется в тех же единицах измерения, что и сама величина.
- Относительная погрешность — отношение абсолютной погрешности к тому значению, которое принимается за истинное:

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

где Xn — нормирующее значение, которое зависит от типа шкалы измерительного прибора и определяется по его градуировке:
— если шкала прибора односторонняя, т.е. нижний предел измерений равен нулю, то Xn определяется равным верхнему пределу измерений;
— если шкала прибора двухсторонняя, то нормирующее значение равно ширине диапазона измерений прибора.
Приведенная погрешность — безразмерная величина (может измеряться в процентах).
По причине возникновения
- Инструментальные / приборные погрешности — погрешности, которые определяются погрешностями применяемых средств измерений и вызываются несовершенством принципа действия, неточностью градуировки шкалы, ненаглядностью прибора.
- Методические погрешности — погрешности, обусловленные несовершенством метода, а также упрощениями, положенными в основу методики.
- Субъективные / операторные / личные погрешности — погрешности, обусловленные степенью внимательности, сосредоточенности, подготовленности и другими качествами оператора.
В технике применяют приборы для измерения лишь с определенной заранее заданной точностью – основной погрешностью, допускаемой нормали в нормальных условиях эксплуатации для данного прибора.
Если прибор работает в условиях, отличных от нормальных, то возникает дополнительная погрешность, увеличивающая общую погрешность прибора. К дополнительным погрешностям относятся: температурная, вызванная отклонением температуры окружающей среды от нормальной, установочная, обусловленная отклонением положения прибора от нормального рабочего положения, и т.п. За нормальную температуру окружающего воздуха принимают 20°С, за нормальное атмосферное давление 01,325 кПа.
Обобщенной характеристикой средств измерения является класс точности, определяемый предельными значениями допускаемых основной и дополнительной погрешностей, а также другими параметрами, влияющими на точность средств измерения; значение параметров установлено стандартами на отдельные виды средств измерений. Класс точности средств измерений характеризует их точностные свойства, но не является непосредственным показателем точности измерений, выполняемых с помощью этих средств, так как точность зависит также от метода измерений и условий их выполнения. Измерительным приборам, пределы допускаемой основной погрешности которых заданы в виде приведенных основных (относительных) погрешностей, присваивают классы точности, выбираемые из ряда следующих чисел: (1; 1,5; 2,0; 2,5; 3,0; 4,0; 5,0; 6,0)*10n, где n = 1; 0; -1; -2 и т.д.
По характеру проявления
- Случайная погрешность — погрешность, меняющаяся (по величине и по знаку) от измерения к измерению. Случайные погрешности могут быть связаны с несовершенством приборов (трение в механических приборах и т.п.), тряской в городских условиях, с несовершенством объекта измерений (например, при измерении диаметра тонкой проволоки, которая может иметь не совсем круглое сечение в результате несовершенства процесса изготовления), с особенностями самой измеряемой величины (например при измерении количества элементарных частиц, проходящих в минуту через счётчик Гейгера).
- Систематическая погрешность — погрешность, изменяющаяся во времени по определенному закону (частным случаем является постоянная погрешность, не изменяющаяся с течением времени). Систематические погрешности могут быть связаны с ошибками приборов (неправильная шкала, калибровка и т.п.), неучтёнными экспериментатором.
- Прогрессирующая (дрейфовая) погрешность — непредсказуемая погрешность, медленно меняющаяся во времени. Она представляет собой нестационарный случайный процесс.
- Грубая погрешность (промах) — погрешность, возникшая вследствие недосмотра экспериментатора или неисправности аппаратуры (например, если экспериментатор неправильно прочёл номер деления на шкале прибора, если произошло замыкание в электрической цепи).
По способу измерения
- Погрешность прямых измерений
- Погрешность косвенных измерений — погрешность вычисляемой (не измеряемой непосредственно) величины:
Если F = F(x1,x2…xn), где xi — непосредственно измеряемые независимые величины, имеющие погрешность Δxi, тогда:
См. также
- Измерение физических величин
- Класс точности
- Метрология
- Система автоматизированного сбора данных со счетчиков по радиоканалу
- Методы электроаналитической химии
Литература
- Назаров Н. Г. Метрология. Основные понятия и математические модели. М.: Высшая школа, 2002. 348 с.
- Лабораторные занятия по физике. Учебное пособие/Гольдин Л. Л., Игошин Ф. Ф., Козел С. М. и др.; под ред. Гольдина Л. Л. — М.: Наука. Главная редакция физико-математичекой литературы, 1983. — 704 с.
Wikimedia Foundation.
2010.
1.1 Задачи теории ошибок
В
теории ошибок на основе теории вероятностей
с использованием методов математической
статистики решают следующие задачи:
-
Изучение
причин возникновения ошибок измерений,
их свойств и законов распределения их
вероятностей; -
Определение
наиболее надёжного значения искомой
величины из результатов её многократных
измерений; -
Оценка
точности непосредственно выполненных
результатов измерений и предвычисление
ожидаемой точности функций измеренных
величин; -
Установление
допусков, т.е. критериев, ограничивающих
использование результатов измерений
в заданных пределах точности.
1.2 Классификация ошибок измерений
Ошибки
измерений подразделяют на грубые,
систематические и случайные.
К
грубым
ошибкам относят ошибки, вызванные
промахами и просчётами наблюдателя,
неисправностями приборов, резким
ухудшением внешних условий и др. С целью
их обнаружения измерения выполняются
многократно (не менее двух раз). Результаты
измерений, содержащие грубые ошибки,
необходимо выявлять и исключать из
обработки.
К
систематическим
относят
ошибки, которые входят в результаты
измерений по тому или иному закону, как
функции источников возникновения
ошибок. В практике геодезических
измерений применяют следующие способы
уменьшения влияния систематических
ошибок:
-
Устанавливают
закон появления систематических ошибок,
после чего ошибки уменьшают введением
поправок в результаты измерений; -
Применяют
соответствующую методику измерений
для того, чтобы систематические ошибки
действовали не односторонне, а изменяли
знаки; -
Используют
определённую методику обработки
результатов измерений.
Случайные
ошибки являются наиболее ярким примером
случайной величины. Их закономерности
обнаруживаются только в массовом
проявлении. Случайные ошибки неизбежны
при измерениях и не могут быть исключены
из единичного измерения. Влияние их
можно лишь ослабить, повышая качество
и количество измерений, а также надлежащей
математической обработкой результатов
измерений. Причин возникновения случайных
ошибок измерений много: влияние внешних
условий, неточности изготовления и
юстировки приборов, неточности выполнения
операций наблюдателем и т.д. Очевидно,
что случайные ошибки являются результатом
суммирования большого числа независимых
элементарных ошибок. На основании
центральной предельной теоремы Ляпунова
можно считать, что случайные ошибки
измерений подчиняются нормальному
закону распределения.
В
дальнейшем условно примем, что в любых
измерениях грубые ошибки отсутствуют,
основная часть систематических ошибок
исключена из результатов, а остаточные
систематические ошибки ничтожно малы,
т.е. будем рассматривать только случайные
ошибки (,
гдехi —
результат измерений, Х —
истинное значение измеряемой величины.)
Очевидно, что
,
а.
1.3 Свойства случайных ошибок измерений
-
Случайные
ошибки по абсолютной величине с заданной
вероятностью
не должны
превышать определённого предела,
равного
(t —
коэффициент, для которого
,m —
средняя
квадратическая ошибка)); -
Положительные
и отрицательные случайные ошибки,
равные по абсолютной величине, одинаково
часто встречаются в ряде измерений; -
Среднее
арифметическое из значений случайных
ошибок при неограниченном увеличении
числа измерений имеет пределом нуль,
т.е.
|
|
Это
свойство называют свойством компенсации.
Отклонение
от нуля свидетельствует о наличии в
результатах измерений систематических
ошибок.
-
Малые
по абсолютной величине случайные ошибки
встречаются в ряде измерений чаще, чем
большие.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Космические лучи — причина случайных компьютерных сбоев?
Время на прочтение
4 мин
Количество просмотров 33K
Если ваш компьютер внезапно завис, выдал «синий экран смерти» или не смог скопировать файл — не спешите обвинять производителя компьютерной техники или глючной памяти. Возможно, причина сбоя — космическая радиация. Такие события называются «нарушением в результате единичного события» (single-event upset, SEU).
Нарушение в результате единичного события — это изменение состояния электронного компонента, вызванное одной частицей ионизирующего излучения (ион, фотон, протон, нейтрон и т.д.), которая сталкивается с чувствительным узлом системы, таким как микропроцессор, полупроводниковая память или мощный транзистор. Изменение состояния происходит из-за возникновения свободного заряда, который появляется в результате ионизации внутри или рядом с чувствительным узлом системы или логическим элементом, таким как бит памяти. В итоге устройство выдаёт ошибку. Эту единичную ошибку и называют «нарушением в результате единичного события», SEU или просто случайным сбоем (soft error).
Случайные сбои из-за космической радиации действительно периодически происходят даже на земле, а вероятность их появления в самолётах на высоте и на околоземной орбите в сотни раз больше. Чем выше — тем более вероятно, потому что там более разреженная атмосфере и слабее защита от космической радиации.
Последствия SEU могут быть разными. Например, в цифровой фотографии может выпасть один пиксель. Ничего страшного. Другое дело, если из-за космического нейтрона глючит компьютерная система самолёта — и ему приходится идти на вынужденную посадку. Такое действительно однажды случилось с военно-транспортным самолётом C-141B Starlifter, который испытал случайный сбой во время полёта над Японским морем с более чем 100 пассажирами на борту. Во время полёта самолёт внезапно свалился на правое крыло. Экипажу удалось выправить крен и посадить самолёт. Последующее расследование показало, что микрочип в системе автоматического управления внезапно выдал ложные показания с неверным битом — вероятно, из-за столкновения с нейтроном.
По статистике, на большой высоте через каждый квадратный метр поверхности проходит примерно 1600 космических частиц в секунду. То есть через каждый квадратный сантиметр проходит примерно 600 космических частиц в час. Исходя из таких предпосылок, случайные сбои могут быть совсем не такими редкими событиями, как кому-то кажется.
На высоте более 9000 метров интенсивность нейтронного потока в 300 раз выше, чем на уровне моря. Настолько же возрастает вероятность нарушения в результате единичного события. К сожалению, не существует никакой реальной защиты от космических лучей, так что остаётся лишь полагаться на везение.
7 октября 2008 года авиалайнер Airbus A330-303 компании Qantas Airways шёл по маршруту из Перта (Австралия) в Сингапур. На высоте 11 300 метров произошёл сбой в одном из трёх опорных инерциальных блоков, в результате чего в компьютерную систему управления были отправлены некорректные данные. По этой причине самолёт резко ушёл вниз, подкинув вверх пассажиров, которые не были пристёгнуты ремнями безопасности. Травмы получили 110 из 303 пассажиров, а также 9 из 12 членов экипажа. Среди пассажиров 12 человек получили серьёзные травмы, а ещё 39 человек обратились в больницу. Среди всех возможных причин сбоя инерциального блока осталась неисключённой только SEU, остальные признаны «маловероятными» или «очень маловероятными». Однако Австралийский совет по безопасности транспорта посчитал «недостаточными свидетельства для оценки вероятности», что именно SEU стала причиной сбоя.
Хотя на Земле вероятность единичного сбоя из-за космического излучения в 300 раз ниже, чем на высоте 9000 метров, но иногда этому явлению приписывают самые необъяснимые события, которые происходят с компьютерной техникой. Например, в 2003 году машина для электронного голосования в городе Схарбек (Бельгия) добавила 4096 голосов одному из кандидатов на выборах. Расследование показало, что этот сбой был вызван изменением одного бита в памяти устройства. Причиной назвали космическое излучение. Что характерно, ошибку обнаружили только благодаря тому, что кандидат получил больше голосов, чем было возможно. Иначе бы сбой остался незамеченным.
«Это действительно большая проблема, но она в значительной степени остаётся незаметной для общества», — говорит Бхарат Б’ува (Bharat Bhuva), член научно-исследовательской группы по изучению эффектов радиации (Radiation Effects Research Group) и профессор электротехники в Университете Вандербильта (США). Эта исследовательская группа была образована в 1987 году в том числе для изучения влияния космического излучения на электронные системы. Первоначально группа занималась военными и космическими системами, но с 2001 года расширила сферу интересов и на бытовую электронику.
Хотя существуют довольно яркие примеры сбоев техники, SEU остаются исключительно редким феноменом. Но специалисты обращают внимание, что электронные микросхемы всё чаще используются в различных бытовых приборах. Плотность транзисторов на чипах возрастает, как и их количество. Из-за этого вероятность встречи с «космическим сбоем» растёт с каждым годом. Производители электротехники изучают проблему. Например, в 2008 году инженеры компании Fujitsu забрались на гавайский вулкан, чтобы измерить космическое излучение на высоте 4200 метров. Там оно примерно в 16 раз выше, чем на уровне моря.
Для защиты от космического излучения производители бытовой электроники пытаются использовать менее чувствительные материалы и коды исправления ошибок (error-correction codes). В более дорогих устройствах можно применять системы дублирования.
У инженеров, системных администраторов и программистов теперь есть отличная «отмазка», чтобы объяснить странные глюки компьютерной техники.
Ошибка вне по одному или ошибка на единицу ( на немецком языке о гм-один-рядом ошибок или плюс-минус-один синдром , сокращенно гобой), шутя также « Оби-Ван ошибка» , потому что похоже звучание, или Задача ± 1 описывает ошибку программирования в информатике, в которой число или количество выполненных шагов 1 слишком велико или слишком мало. Например, размер блока памяти неверен на 1 или буфер записывается на один шаг слишком далеко в память, при этом перезаписывается память другого буфера или переменная.
Общий
Поочередные ошибки часто возникают при обработке полей данных , массивов , векторов , списков , строк или других индексируемых типов данных .
Единичные ошибки могут быть легко сделаны, и их очень трудно найти, тем более что они очень часто заметны только в очень особых условиях. Их также можно очень легко упустить из виду при просмотре исходного кода. Еще одна сложность заключается в том, что индексы или смещения в исходном коде обычно формируются переменными или формулами. Меры компилятора / интерпретатора или, возможно, операционных систем, которые регистрируют превышение предела буфера для каждого отдельного байта, также действуют только в особом случае, когда должен использоваться весь зарезервированный буфер.
Когда индивидуальная неисправность обнаружена и локализована, ее обычно очень легко исправить.
Общие причины (выбор)
Существуют различные причины ошибок, которые в конечном итоге приводят к единичной ошибке. Примеры:
- Распространенным источником ошибок является тот факт, что при программировании счет часто начинается с 0, а не с 1 (нумерация с нуля) . В случае массива с 10 полями данных это означает, что поля данных не имеют индексов от 1 до 10, а имеют индексы от 0 до 9.
- Другой распространенный источник ошибок — использование нулевых байтов , особенно со строками, то есть текстом. Нулевой байт — это символ со значением 0, который не появляется в тексте и отмечает конец символьной строки, в то время как фактический буфер для символьной строки может быть во много раз больше. Это означает, что размер буфера не нужно постоянно изменять для содержимого переменного буфера, а длину символьной строки не нужно указывать отдельно. Однако из-за нулевого байта символьная строка в принципе на один символ длиннее, чем сама символьная строка. Например, строка «Hello» состоит из 5 символов, но требует наличия 6 символов в памяти. Функции, определяющие и возвращающие длину символьной строки, не считают нулевой байт.
- Ошибки смещения на единицу также часто возникают в результате так называемых ошибок столбов ограждения , то есть из- за того, что при индексировании путают расстояния и числа.
последствия
В случае ошибки нечеткости при записи цикла, который должен обрабатывать поле, обычно выбирается неправильное условие завершения или продолжения, так что в теле цикла есть инструкция, которая обращается к полю на основе индексов. ровно один раз слишком часто или один раз слишком мало, что либо пытается получить доступ к несуществующему элементу поля, либо последний (или первый) элемент поля пропускается. В первом из упомянутых случаев ошибка индекса вне верхнего диапазона (или аналогичная) часто является заметным последствием; во втором случае иногда вообще не видна ошибка, пока весь размер буфера не соответствует или сообщается об ошибке выхода индекса из нижнего диапазона.
Ошибка нечеткости может привести к сбою программы, если в памяти после буфера есть важные данные, которые затем перезаписываются циклом (например, указатель на структуру). В принципе, программный код также может находиться после буфера в основной памяти, при этом случайная перезапись обычно также вызывает сбой программы, поскольку данные не соответствуют допустимой машинной команде.
Примеры
Пример из языка C :
int nettopreise[10]; int i; /* nettopreise initialisieren */ ... for (i = 0; i <= 10; i++) nettopreise[i] = nettopreise[i] * 1.19; // MwSt aufschlagen.
В этом случае он i < 10не должен i <= 10читать и , поскольку в объявлении указан размер поля 10, но поскольку C отсчитывается от нуля, максимальный индекс равен 9.
Часто этот тип ошибки возникает из-за путаницы, которая возникает из-за того, что люди считают от 1 до N, но индексы полей во многих языках программирования меняются от 0 до N — 1. Затем есть знак «больше» и «больше или равно», которые можно перепутать. Кроме того, условие завершения может быть более сложным, так что в этот момент часто возникают единичные ошибки.
Случай структуры данных, который действительно начинается с 1, но счетчики циклов с использованием этой структуры данных начинаются с 0, особенно сложен.
Ошибка нечеткости также может легко возникнуть, если в случае пределов диапазона не учитывается, являются ли нижняя и верхняя границы включительными или исключающими. Таким образом, substringв Java функция возвращает часть строки, которая включает нижнюю границу с, но не верхнюю.
Например, если вы хотите извлечь часть слова «bar» из слова «Foobar» путем подсчета букв, вы легко можете ошибиться с верхним пределом, даже если вы начнете правильно считать с 0. Поскольку слово «бар» включает буквы в индексах 3, 4 и 5, возникает соблазн substring(3, 5)вызвать его. Однако в результате вы получите только «ба».
Чтобы избежать этой проблемы, используйте другие языки программирования, такие как C / C ++, JavaScript или PHP, вместо начального и конечного индексов параметров, начального индекса параметров и длины желаемой символьной строки.
веб ссылки
- пошаговая ошибка в Free On-line Dictionary of Computing (английский)
Индивидуальные доказательства
- ↑ userpage.fu-berlin.de
- ^ Эгидиус Плюсс: Java — пример: обучение на практике . Oldenbourg Wissenschaftsverlag, 2004, ISBN 3-486-20040-2 , стр. 51.
- ↑ foldoc.org
- ↑ Дитер Масак: Устаревшее программное обеспечение: долгая жизнь старых систем . Springer-Verlag, 2005, ISBN 3-540-25412-9 , стр.161.
По
Д.Толлингеровой (1981). В предложенной
ею типологии ошибок различаются:
громадная и единичная
ошибка, допустимая и недопустимая
ошибка, необходимая
и случайная ошибка, «умная» ошибка.
Особенностью этой типологии
является то, что она ориентирует
преподавателя не только на внешний
контроль по отношению к студенту, но и
обращает
его к самоконтролю управляющих
воздействий, а также
содействует формированию самоконтроля
у студентов. Эта
двусторонняя ориентация контроля
особенно важна для усиления диалогического
характера процесса обучения.
Громадной
ошибкой
Д.Толлингерова называет ошибку,
допускаемую
большинством учащихся, в отличие от
единичной
ошибки,
встречающейся только у отдельных
индивидов. Громадная ошибка происходит,
как правило, от ошибочной
методической деятельности учителей, в
то время как единичная ошибка происходит,
как правило, от неправильной
деятельности ученика. Итак, появление
громадной ошибки
должно осмысливаться учителем как
сигнал необходимой
корректировки собственного действия,
в то время как единичная
ошибка должна приниматься им в качестве
сигнала поправки
действия ученика».
Допустимой
—
эта
ошибка свидетельствует о неполноте
усвоения и не может
рассматриваться как существенная. По
ее мнению, «значение такого
рода различения ошибочных учебных
действий для надежности
опережающего управления состоит в
следующем: корректировка
допустимых ошибок наносит учебному
процессу, как правило,
больше вреда, чем пользы. Причина
заключается в том, что
слишком выразительное обращение внимания
ученика на устранение
несущественной ошибки придает этому
корректировочному
действию характер предметной деятельности
(по терми нологии А.Н.Леонтьева), обладает
сильной тенденцией
зафиксироваться в памяти… Не будь
такого превращения неважной
ошибки в предмет специальной
контрольно-корректировочной
деятельности, эта ошибка исчезла бы
спустя некоторое время
сама по себе путем угасания или
автокоррекции».
Недопустимая
— является
симптомом неверного понимания целей и
предмета действий при работе с учебным
материалом.
Необходимой
она
называет ошибку, которая законно вытекает
из
логики учебного действия в отличие от
случайной
ошибки,
появление
которой обладает невысокой вероятностью.
Дифференциация
необходимой и случайной ошибок также
имеет значение для повышения надежности
опережающего управления учебными
действиями и полезно тем, что устранение
необходимых ошибок
можно впредь планировать, освобождая
тем самым учащегося
от необходимости встречи с ними. «В
отличие от этого успешность
борьбы со случайными ошибками зависит
от способности учителя
планировать свою контрольно-корректировочную
деятельность,
а скорее от его способности импровизировать»
(Толлингерова,
1981,
с.16).
«Умной»
называется
ошибка, происходящая не от незнания или
неумения, а определяемая поисковой
интеллектуальной деятельностью ученика,
присутствием творческих процессов
мышления.
Ошибка такого рода приносит делу обучения
больше
пользы, чем безошибочное действие. Это
и есть ошибка, на которой
можно — по пословице — многому научиться.
Значение понятия
«умная ошибка» для повышения надежности
опережающего управления учебными
действиями Д.Толлингерова видит в том,
что преподаватель может помогать
появлению такого рода ошибки,
используя так называемый корректировочный
метод обучения,
«суть которого и заключается в обучении
на основе опознания
и причинного осмысления ошибок. В
настоящее время этот
дидактический метод используется почти
исключительно в процессе
усвоения языков» .
Предложенная
Д.Толлингеровой типология ошибок дает
преподавателю
психологии надежные критерии контроля
и сбалансированную
оценку, исключая переоценку ошибочных
действий,
культ «исправления» ошибок.
Как
показали исследования,
функции
контроля
наиболее существенно перестраиваются
за счет двух
факторов
организации учебной деятельности: а)
изменения характера задач, перехода от
задач репродуктивных к
задачам творческим, продуктивным,
мобилизующим разнообразные
виды когнитивной деятельности; б)
перехода от индивидуальной
к совместной учебной деятельноссти. В
условиях совместного
решения задач появляются новые прямые
и косвенные стимуляторы
контроля, взаимоконтроля и самоконтроля
— подражание,
совместное обсуждение, взаимокоррекция,
аргументация
и осознанное доказательство.
Использование
в учебном курсе творческих продуктивных
задач
выдвигает на первый план роль
смыслополагающих и целеполагающих
компонентов учебных действий, что
снимает трудности пооперационного
контроля, иерархизирует действия
контроля
и мотивирует самокоррекцию и самоконтроль.
Совместное
решение задач обеспечивает более широкий
репертуар
внешних средств и способов контроля и
содействует их
интериоризации в процессе самоконтроля
и самокоррекции.
Таким
образом, проблема контроля при усвоении
психологических
знаний может наиболее радикально
решаться за счет использования
новых методических подходов к организации
всей системы
переменных учебной ситуации. Но при
этом два фактора в
этой системе оказывают решающее
воздействие на переход к самоконтролю,
к саморегуляции учения: во-первых,
расширение репертуара
учебных задач, с включением задач
оптимальной когнитивной сложности
— творческих продуктивных задач и,
во-вторых,
использование многообразных форм
совместной учебной
деятельности в ходе решения продуктивных
задач. Оба эти фактора
выдвигают на первый план по отношению
к оценивающей
и санкционирующей функциям контроля
другие функции: побуждать
и регулировать учебные действия.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #





.
