Тогда от них не то что можно, а нужно убегать.
Но прот. Георгий Городенцев написал не одну, а две брошюры: в одной он утверждает, что откалываться от Московской Патриархии нельзя, а в другой по сути дела утверждает, что ее возглавление духовно слепо, ибо не разглядело «подобие антихристовой печати» и оскудение благодати в мире, вызванное деятельностью налоговой полиции. Только прот. Георгий заметил, что благодати стало меньше. А Синод говорит, что «те, кто призывает к публичному отказу от всяких номеров, поступают безответственно». Значит, если прав о. Георгий, выходит, что Синод призывает людей к таким действиям, которые сделают их менее доступными для благодати Христовой. Но ради спасения должно избегать людей и структур, мешающих полноте нашей жизни во Христе. Значит – надо отходить от Московского Синода, расставляющего препятствия на пути спасения… Так что – вопреки желанию прот. Георгия – книжка у него получилась с объективно раскольническим выводом. То, что строит его левая рука, разрушает правая. Увы, из некоторых украинских монастырей исходят сегодня противоположные импульсы: издаются листовки с призывами сохранить каноническую верность Патриарху Московскому и всея Руси – и тут же издаются листовки, по сути обвиняющие Патриарха в отступничестве от Православия…
Я же предлагаю следовать другой логике: если я утверждаю, что Русская Православная Церковь (вместе с Украинской Православной Церковью) благодатна, значит, ее иерархия и священство не утратили Христовых даров. Значит, я могу довериться Патриарху Московскому Алексию, митрополиту Киевскому Владимиру, Московскому и Украинскому Синодам, которые не видят «тяжкого апокалиптического греха» в налоговой регистрации и использовании штрих-кодов в личных документах. Но тогда на вопрос, вынесенный протоиереем Георгием в название его книги – «Прав ли Кураев?» – я, преодолевая привычку, которая велит мне перед священниками каяться, все же дерзну ответить: в этом вопросе – прав.
Есть, впрочем, у меня и свой, сугубо частный довод, склоняющий меня к тому, что пространство истории еще не схлопнулось в антихристовом мраке. История кончится тогда, когда люди отупеют своими сердцами. Когда потеряется духовная жажда. Когда люди станут глухи к слову Евангелия. Когда тускло-равнодушные глаза будут смотреть на храмы, иконы, проповедников… Но я вижу глаза моих студентов в духовных школах и в светских университетах. Я вижу, как они распахиваются и загораются. И потому я убежден: нынешнее поколение русских людей не будет жить при антихристе. В них еще слишком много жизни и искренности. Они еще смогут побороться. И ради них Господь еще отсрочит последние события.
ПОСЛЕСЛОВИЕ
Церковь всегда живет в «последние времена». «Так и ныне и Иов тот же, и Бог тот же, и диавол тот же».[945] Вот только не надо из этого богословского факта делать вывод, будто поиск антихриста среди современников есть всегдашнее, нормативное занятие церковного человека.
К «последним» событиям христианин должен быть готов по строю своей души. Он должен быть трезв в оценке своей собственной готовности перейти порог времени и вечности (в конце концов личный «апокалипсис» у каждого из нас будет прежде «апокалипсиса» общего).
Но страшно разрушительно обратить свой критический взор наружу и начать в других людях выискивать «печати антихриста». Опасно клич о «последних временах» делать лозунгом своей социальной и церковной жизни. Духовно и душевно опасно счесть, будто «последние времена» требуют от меня немедленного разрыва общения с теми, кто не разделяет моей последней тревоги.
Себя и свою жизнь можно и нужно сопоставлять с апокалиптическими обличениями. Но надо ли под их громы и молнии подставлять жизнь других людей?
К себе полезно относить грозные слова Откровения о «теплохладных». Но полезно ли читать эти слова как характеристику, относимую к кому-то другому, а не лично ко мне? И уж точно неполезно видеть в них характеристику епископата…
Для меня написание этой книги – продолжение моей обычной апологетической работы. Просто поначалу мне казалось, что защищать Православие надо от атеистов. Потом стало понятнее, что гораздо опаснее нападки на нашу веру со стороны сектантов. Ну, а теперь выяснилось, что и из самой казалось бы церковной среды церковная жизнь может получать весьма увесистые удары.
Надеюсь, что это смещение полемических интересов лишь временное.
Но хрупкость церковного единства, готовность множества людей (в т. ч. и монахов) с азартом искать поводы к разделению, обличению и противопоставлению и в самом деле есть тревожный признак. Это (а не «ИНН») и есть реальный шаг на пути к концу. «Если же друг друга угрызаете и съедаете, берегитесь, чтобы вы не были истреблены друг другом» (Гал.5, 15).
В штрих-кодах содержится число 383!
В последнее время в ряде изданий[946], а также в Интернете[947] было опубликовано исследование ученых-специалистов В. Ахрамеева и И. Башкирова о наличии трех шестерок в штрих –кодах EAN-13/UPC, ставшее, пожалуй, наиболее доступным для читателей среди всех подобного рода исследований. Работа эта получила в печати высокую оценку, была признана технически корректной, а ее выводы – доказательными и обоснованными[948].
На эту работу не только часто ссылаются: кажется, что именно ее появление прекратило дискуссии о наличии шестерок в штрих-коде ЕАН. Все как будто согласились: «Да, теперь доказано: шестерки – есть».
Что же было сделано В. Ахрамеевым и И. Башкировым?
В работе содержится анализ материалов ГОСТа Р 51201-98 «Требования к символике ЕАН/ЮПиСи». К этому ГОСТу и ранее обращались другие авторы, писавшие о штрих-коде ЕАН[949]. Указывая на табл.4.1 и 4.2 ГОСТа (таблицы кодирования информационных и вспомогательных знаков), они утверждали, что вспомогательные знаки не тождественны знаку цифры 6, содержащей большее число пробелов. Споря с этими авторами, В. Ахрамеев и И. Башкиров рассмотрели процедуру декодирования, приведенную в п.4.6 ГОСТа, применили ее к вспомогательным знакам, получили в результате декодирования цифру "6" и пришли к выводу о тождественности вспомогательных знаков знаку цифры шесть.
Однако исследование В. Ахрамеева и И. Башкирова представляется нам ошибочным. Мы попробуем это показать и исправить допущенную ими «техническую» ошибку, не меняя при этом самого способа доказательства, предложенного ими, а только скорректировав его.
Но сначала приведем полностью соответствующее место из труднодоступного, малотиражного ГОСТа, чтобы читатели могли сами получить представление об описанном в нем алгоритме и проверить правильность всех приводимых далее умозаключений и выкладок.
Алгоритм декодирования ГОСТа
"4.6 Рекомендуемый алгоритм декодирования Системы считывания штриховых кодов на основе соответствующих алгоритмов декодирования позволяют считывать символы, параметры которых отличны от номинальных. В этом разделе рассмотрен алгоритм декодирования, используемый для установления допусков Те, Тb, Тр[950].
Для каждого знака символа принимают измеренную ширину знака равной S. Значение S используют для определения базовых пороговых (RT) значений. Индивидуальные измерения от кромки одного штриха до соответствующей кромки следующего штриха (е) сравнивают с базовым пороговым значением (RT), чтобы определить значение Е.
Значение e1 по определению представляет собой расстояние от передней кромки штриха до передней кромки соседнего штриха, а значение е2 – измеренное расстояние от задней кромки штриха до задней кромки соседнего штриха.
Базовые пороговые значения RT1, RT2, RT3, RT4 и RT5 представлены следующим образом:
RT1=(1, 5/7)S;
RT2=(2, 5/7)S;
RT3=(3, 5/7)S; (1)
RT4=(4, 5/7)S;
RT5=(5, 5/7)S.
Внутри каждого знака измеренные значения e1 и е2 сравниваются с базовыми пороговыми. Соответствующие интегральные значения измерений Е1 и Е2 считаются равными 2, 3, 4 или 5, как показано ниже:
RTKeiRT2RT3RT4В противном случае знак является ошибочным. Определенные таким образом значения Е1 и Е2 должны соответствовать значениям, установленным в таблице 4.10 для соответствующих знаков".
В приведенной выше процедуре определения параметров Ei расстояния и интервалы фактически измеряются в единицах ширины одного модуля, и систему неравенств можно переписать в эквивалентном и, как нам кажется, более наглядном виде:
1, 52, 53, 54, 5где i=1,2; m=S/7 – ширина модуля знака символа,
Итак, алгоритм декодирования, изложенный ГОСТом, предписывает следующие действия:
1. Измерение ширины знака S;
2. Определение ширины модуля m=S/7;
3. Измерение величин e1, e2, в1, в2; где в1 и в2 – ширина штриховых элементов знака;
4. Определение отношений e1/m; e2/m; (в1+ в2)/m[951];
5. Определение параметров Е1 и Е2 – в зависимости от того, в какой интервал попадают значения e1/m и е2/m;
6. Определение знака данных по табл.4.10 по параметрам Е1 и Е2. В некоторых случаях необходимо использовать дополнительный параметр («вторичный детерминант») (в1+в2)/m.
На эту последовательность действий мы будем ссылаться в дальнейшем следующим образом: «п... Алгоритма»
Ошибка или…?
Что же сделали авторы рассматриваемого исследования? Решив сравнить результаты декодирования вспомогательных знаков и знака цифры "6" с одинаковой шириной модуля m=1, они сразу обратились к п. З Алгоритма. Заметив, что далее при декодировании использовались только два измеренных значения – расстояния e1 и е2, авторы сделали такой вывод: «для распознавания используется толькоширина обоих штрихов знака и пробела между ними. Все пробелы, подчеркиваем – все, находящиеся за пределами этих двух штрихов, составляющих знак, просто игнорируются алгоритмом распознавания! Следуя ГОСТу…, подсчитывается параметр e1, равный расстоянию от передней кромки первого штриха до передней кромки второго штриха знака; параметр е2, равный расстоянию от задней кромки первого штриха до задней кромки второго штриха; иногда еще требуется сумма ширин первого и второго штрихов»; и что имеет значение только "знак «штрих-пробел-штрих» (все – шириной в один «модуль»[952] ); количество пробелов справа и слева от знака – по вкусу (они все равно не участвуют в декодировании)".
Далее авторы для знака цифры "6" и для вспомогательных знаков при m=1 (не объяснив, как они получили это значение) выполнили все действия, предусмотренные Алгоритмом, начиная с п. З, и получили для всех знаков: e1=2; e2=2; Е1=2; Е2=2. По табл.4.10 определили значение знака данных: "6" – одно и то же и для всех знаков, и сделали вывод: алгоритм декодирования ГОСТа единственным образом распознает вспомогательные знаки как цифру "6". Этот результат они и ожидали получить в соответствии со своим общим (и ошибочным) выводом: «все пробелы, лежащие за пределами трех элементов знака Ш П Ш игнорируются алгоритмом декодирования».
В чем же ошибка приведенных выше рассуждений?
Авторы упоминают только e1 и е2, но ведь для декодирования необходимо знать их относительные значения: e1/m и е2/m. А для их определения необходимо знать значение ширины модуля m. Но как его узнать? Это же не универсальная константа вроде постоянной Планка. Ширина модуля разная не только для разных этикеток со штрих-кодом – она меняется даже в пределах одного и того же символа за счет искажений, возникающих при считывании его сканером (например, если этикетка находится на цилиндрической поверхности), и даже в пределах одного и того же знака символа. Но в этом последнем случае считают, что на протяжении знака она меняется незначительно, и полагают m=S/7, где S – ширина информационного знака символа, состоящего из 7 модулей. И такое определение m в реальных считывающих устройствах проводится для каждого знакасимвола[953]. Оно предусмотрено и алгоритмом декодирования ГОСТа (при вычислении базовых пороговых значений). Таким образом, для декодирования информационного знака символа существенно необходимо знать общую ширину знака, которая определяется всемиштрихами и пробелами, образующими знак.
Приведем пример. Пусть нам встретился знак из трех элементов «штрих-пробел-штрих», в котором все элементы –равной ширины, а ширина поля пробелов справа или слева от этого трехэлементного знака неизвестна. Как он будет декодирован? Для декодирования нужно определить, сколько модулей укладывается в расстояниях e1 и е2, а для этого необходимо знать ширину одного модуля. Но ее можно определить только тогда, когда виден весь знак в целом, со всеми принадлежащими ему пробелами. Если рядом будет пробел с шириной в четыре раза большей, чем ширина каждого из упомянутых элементов, то ширина модуля будет равна ширине каждого элемента; при этом e1/m=e2/m=2, и знак будет декодирован как "6". Если же рядом будет пробел шириной в половину ширины элемента, то модуль будет вдвое уже каждого элемента; при этом e1/m=e2/m=4, и знак будет декодирован как "1".
Итак, утверждение авторов, что пробелы, окружающие трехэлементный знак, игнорируются алгоритмом декодирования, ошибочно – от ширины этих пробелов существенно зависит результат декодирования.
Что же привело авторов исследования к ошибке? Об этом можно лишь догадываться. Может быть, некорректная запись: е1=Е1 и е2=Е2 (нельзя ставить знак равенства между размерной и безразмерной величинами даже если они численно равны). Может быть, то, что авторы свои рассуждения начали с п. З Алгоритма, не показав, как же все-таки они получили значение m=1. Может быть, то, что они отбросили часть процедуры декодирования, связанную с определением «базовых значений RT», не заметив, что она важна не только как задающая некоторые интервалы при наличии всевозможных неточностей, но и как устанавливающая (и это очень важно) масштаб, задающая единицу длины S/7, в которой и выражаются расстояния e1 и е2. Так или иначе, ученые специалисты забыли о величине m и о том, что ее необходимо измерять.
Тем не менее, они получили определенный результат, как будто действительно игнорируя пробелы: «все вспомогательные знаки алгоритмом ГОСТа декодируются как шестерки». Как это могло быть? Теперь-то мы, наконец, приступаем к главной «тайне» исследования, скрываемой его авторами: какие же все-таки знаки они сначала начертали в тетрадке для арифметики, а потом декодировали? Попробуем восстановить пропущенное авторами: п.1 и п.2 Алгоритма.
Тайна исследования ученых – специалистов
Известно следующее:
1. В знаке содержится последовательность элементов равной ширины: «штрих-пробел-штрих» («трехэлементный знак»).
2. Ширина каждого элемента равна одному модулю знака.
3. Ширина модуля знака m=1.
4. Авторы декодировали знак в соответствии с п.4.6 ГОСТа.
Поскольку авторы действовали по ГОСТу, они должны были измерить ширину знака S и поделить ее на 7, определив ширину модуля знака m. Результат деления они сообщили: m=1. Какова же была ширина знака S? Так как m=S/7, то S=m*7. При m=1 S=7! Это означает, что знак, который декодировали ученые – специалисты, состоял из следующей последовательности штрихов и пробелов (все – шириной в один модуль): «Ш П Ш П П П П». А это, в соответствии с табл.4.1 ГОСТа, – знак цифры "6". Таким образом, авторы, пририсовав «по вкусу» к типовому знаку-ограничителю четыре пробела, подменили его знаком шестерки. В результате декодирования знака шестерки получилась, конечно, шестерка.
Подобным же образом они, по-видимому, подменили и центральный знак-ограничитель: с одной стороны знака отбросили один пробел, с другой стороны пририсовали к знаку по вкусу три дополнительных пробела («они все равно не участвуют в декодировании»), получили знак шестерки, декодировали его и опять получили шестерку.
Нам могут возразить: «Для вспомогательного знака шириной S=3, нужно S делить не на 7, а на 3. Тогда и при S=3 получается правильное значение ширины модуля m=1. Так, наверное, и делали ученые – специалисты».
На это ответим следующее: "Чтобы ширину знака S делить не на 7, а на 3, необходимо заранее, еще до выполнения действия деления, распознать декодируемый знак как знак вспомогательный, иначе деление на 3 необъяснимо. После такого распознавания (идентификации) все действия со знаком (измерение каких-то параметров, преобразование) уже не имеют характера декодирования[954]. Декодировать, собственно, уже нечего, «устройство» знака, в общем, уже известно, можно только что-то уточнять, проверять, сравнивать, использовать результаты измерений для экстраполяции. В этом заключается существенное отличие знаков вспомогательных от информационных: после идентификации знака как знака информационного его необходимо именно декодировать – определить, какую цифру (от 0 до 9) он кодирует. Алгоритм ГОСТа все предлагаемые ему знаки рассматривает как информационные и декодирует их. И всегда S делит на 7. Если ученые специалисты делили на 3 и на 5, они просто подменили алгоритм ГОСТа другим алгоритмом, который каким-то образом распознает знак как вспомогательный (еще до п.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
Но прот. Георгий Городенцев написал не одну, а две брошюры: в одной он утверждает, что откалываться от Московской Патриархии нельзя, а в другой по сути дела утверждает, что ее возглавление духовно слепо, ибо не разглядело «подобие антихристовой печати» и оскудение благодати в мире, вызванное деятельностью налоговой полиции. Только прот. Георгий заметил, что благодати стало меньше. А Синод говорит, что «те, кто призывает к публичному отказу от всяких номеров, поступают безответственно». Значит, если прав о. Георгий, выходит, что Синод призывает людей к таким действиям, которые сделают их менее доступными для благодати Христовой. Но ради спасения должно избегать людей и структур, мешающих полноте нашей жизни во Христе. Значит – надо отходить от Московского Синода, расставляющего препятствия на пути спасения… Так что – вопреки желанию прот. Георгия – книжка у него получилась с объективно раскольническим выводом. То, что строит его левая рука, разрушает правая. Увы, из некоторых украинских монастырей исходят сегодня противоположные импульсы: издаются листовки с призывами сохранить каноническую верность Патриарху Московскому и всея Руси – и тут же издаются листовки, по сути обвиняющие Патриарха в отступничестве от Православия…
Я же предлагаю следовать другой логике: если я утверждаю, что Русская Православная Церковь (вместе с Украинской Православной Церковью) благодатна, значит, ее иерархия и священство не утратили Христовых даров. Значит, я могу довериться Патриарху Московскому Алексию, митрополиту Киевскому Владимиру, Московскому и Украинскому Синодам, которые не видят «тяжкого апокалиптического греха» в налоговой регистрации и использовании штрих-кодов в личных документах. Но тогда на вопрос, вынесенный протоиереем Георгием в название его книги – «Прав ли Кураев?» – я, преодолевая привычку, которая велит мне перед священниками каяться, все же дерзну ответить: в этом вопросе – прав.
Есть, впрочем, у меня и свой, сугубо частный довод, склоняющий меня к тому, что пространство истории еще не схлопнулось в антихристовом мраке. История кончится тогда, когда люди отупеют своими сердцами. Когда потеряется духовная жажда. Когда люди станут глухи к слову Евангелия. Когда тускло-равнодушные глаза будут смотреть на храмы, иконы, проповедников… Но я вижу глаза моих студентов в духовных школах и в светских университетах. Я вижу, как они распахиваются и загораются. И потому я убежден: нынешнее поколение русских людей не будет жить при антихристе. В них еще слишком много жизни и искренности. Они еще смогут побороться. И ради них Господь еще отсрочит последние события.
ПОСЛЕСЛОВИЕ
Церковь всегда живет в «последние времена». «Так и ныне и Иов тот же, и Бог тот же, и диавол тот же».[945] Вот только не надо из этого богословского факта делать вывод, будто поиск антихриста среди современников есть всегдашнее, нормативное занятие церковного человека.
К «последним» событиям христианин должен быть готов по строю своей души. Он должен быть трезв в оценке своей собственной готовности перейти порог времени и вечности (в конце концов личный «апокалипсис» у каждого из нас будет прежде «апокалипсиса» общего).
Но страшно разрушительно обратить свой критический взор наружу и начать в других людях выискивать «печати антихриста». Опасно клич о «последних временах» делать лозунгом своей социальной и церковной жизни. Духовно и душевно опасно счесть, будто «последние времена» требуют от меня немедленного разрыва общения с теми, кто не разделяет моей последней тревоги.
Себя и свою жизнь можно и нужно сопоставлять с апокалиптическими обличениями. Но надо ли под их громы и молнии подставлять жизнь других людей?
К себе полезно относить грозные слова Откровения о «теплохладных». Но полезно ли читать эти слова как характеристику, относимую к кому-то другому, а не лично ко мне? И уж точно неполезно видеть в них характеристику епископата…
Для меня написание этой книги – продолжение моей обычной апологетической работы. Просто поначалу мне казалось, что защищать Православие надо от атеистов. Потом стало понятнее, что гораздо опаснее нападки на нашу веру со стороны сектантов. Ну, а теперь выяснилось, что и из самой казалось бы церковной среды церковная жизнь может получать весьма увесистые удары.
Надеюсь, что это смещение полемических интересов лишь временное.
Но хрупкость церковного единства, готовность множества людей (в т. ч. и монахов) с азартом искать поводы к разделению, обличению и противопоставлению и в самом деле есть тревожный признак. Это (а не «ИНН») и есть реальный шаг на пути к концу. «Если же друг друга угрызаете и съедаете, берегитесь, чтобы вы не были истреблены друг другом» (Гал.5, 15).
В штрих-кодах содержится число 383!
В последнее время в ряде изданий[946], а также в Интернете[947] было опубликовано исследование ученых-специалистов В. Ахрамеева и И. Башкирова о наличии трех шестерок в штрих –кодах EAN-13/UPC, ставшее, пожалуй, наиболее доступным для читателей среди всех подобного рода исследований. Работа эта получила в печати высокую оценку, была признана технически корректной, а ее выводы – доказательными и обоснованными[948].
На эту работу не только часто ссылаются: кажется, что именно ее появление прекратило дискуссии о наличии шестерок в штрих-коде ЕАН. Все как будто согласились: «Да, теперь доказано: шестерки – есть».
Что же было сделано В. Ахрамеевым и И. Башкировым?
В работе содержится анализ материалов ГОСТа Р 51201-98 «Требования к символике ЕАН/ЮПиСи». К этому ГОСТу и ранее обращались другие авторы, писавшие о штрих-коде ЕАН[949]. Указывая на табл.4.1 и 4.2 ГОСТа (таблицы кодирования информационных и вспомогательных знаков), они утверждали, что вспомогательные знаки не тождественны знаку цифры 6, содержащей большее число пробелов. Споря с этими авторами, В. Ахрамеев и И. Башкиров рассмотрели процедуру декодирования, приведенную в п.4.6 ГОСТа, применили ее к вспомогательным знакам, получили в результате декодирования цифру "6" и пришли к выводу о тождественности вспомогательных знаков знаку цифры шесть.
Однако исследование В. Ахрамеева и И. Башкирова представляется нам ошибочным. Мы попробуем это показать и исправить допущенную ими «техническую» ошибку, не меняя при этом самого способа доказательства, предложенного ими, а только скорректировав его.
Но сначала приведем полностью соответствующее место из труднодоступного, малотиражного ГОСТа, чтобы читатели могли сами получить представление об описанном в нем алгоритме и проверить правильность всех приводимых далее умозаключений и выкладок.
Алгоритм декодирования ГОСТа
"4.6 Рекомендуемый алгоритм декодирования Системы считывания штриховых кодов на основе соответствующих алгоритмов декодирования позволяют считывать символы, параметры которых отличны от номинальных. В этом разделе рассмотрен алгоритм декодирования, используемый для установления допусков Те, Тb, Тр[950].
Для каждого знака символа принимают измеренную ширину знака равной S. Значение S используют для определения базовых пороговых (RT) значений. Индивидуальные измерения от кромки одного штриха до соответствующей кромки следующего штриха (е) сравнивают с базовым пороговым значением (RT), чтобы определить значение Е.
Значение e1 по определению представляет собой расстояние от передней кромки штриха до передней кромки соседнего штриха, а значение е2 – измеренное расстояние от задней кромки штриха до задней кромки соседнего штриха.
Базовые пороговые значения RT1, RT2, RT3, RT4 и RT5 представлены следующим образом:
RT1=(1, 5/7)S;
RT2=(2, 5/7)S;
RT3=(3, 5/7)S; (1)
RT4=(4, 5/7)S;
RT5=(5, 5/7)S.
Внутри каждого знака измеренные значения e1 и е2 сравниваются с базовыми пороговыми. Соответствующие интегральные значения измерений Е1 и Е2 считаются равными 2, 3, 4 или 5, как показано ниже:
RTKei
В приведенной выше процедуре определения параметров Ei расстояния и интервалы фактически измеряются в единицах ширины одного модуля, и систему неравенств можно переписать в эквивалентном и, как нам кажется, более наглядном виде:
1, 5
Итак, алгоритм декодирования, изложенный ГОСТом, предписывает следующие действия:
1. Измерение ширины знака S;
2. Определение ширины модуля m=S/7;
3. Измерение величин e1, e2, в1, в2; где в1 и в2 – ширина штриховых элементов знака;
4. Определение отношений e1/m; e2/m; (в1+ в2)/m[951];
5. Определение параметров Е1 и Е2 – в зависимости от того, в какой интервал попадают значения e1/m и е2/m;
6. Определение знака данных по табл.4.10 по параметрам Е1 и Е2. В некоторых случаях необходимо использовать дополнительный параметр («вторичный детерминант») (в1+в2)/m.
На эту последовательность действий мы будем ссылаться в дальнейшем следующим образом: «п... Алгоритма»
Ошибка или…?
Что же сделали авторы рассматриваемого исследования? Решив сравнить результаты декодирования вспомогательных знаков и знака цифры "6" с одинаковой шириной модуля m=1, они сразу обратились к п. З Алгоритма. Заметив, что далее при декодировании использовались только два измеренных значения – расстояния e1 и е2, авторы сделали такой вывод: «для распознавания используется толькоширина обоих штрихов знака и пробела между ними. Все пробелы, подчеркиваем – все, находящиеся за пределами этих двух штрихов, составляющих знак, просто игнорируются алгоритмом распознавания! Следуя ГОСТу…, подсчитывается параметр e1, равный расстоянию от передней кромки первого штриха до передней кромки второго штриха знака; параметр е2, равный расстоянию от задней кромки первого штриха до задней кромки второго штриха; иногда еще требуется сумма ширин первого и второго штрихов»; и что имеет значение только "знак «штрих-пробел-штрих» (все – шириной в один «модуль»[952] ); количество пробелов справа и слева от знака – по вкусу (они все равно не участвуют в декодировании)".
Далее авторы для знака цифры "6" и для вспомогательных знаков при m=1 (не объяснив, как они получили это значение) выполнили все действия, предусмотренные Алгоритмом, начиная с п. З, и получили для всех знаков: e1=2; e2=2; Е1=2; Е2=2. По табл.4.10 определили значение знака данных: "6" – одно и то же и для всех знаков, и сделали вывод: алгоритм декодирования ГОСТа единственным образом распознает вспомогательные знаки как цифру "6". Этот результат они и ожидали получить в соответствии со своим общим (и ошибочным) выводом: «все пробелы, лежащие за пределами трех элементов знака Ш П Ш игнорируются алгоритмом декодирования».
В чем же ошибка приведенных выше рассуждений?
Авторы упоминают только e1 и е2, но ведь для декодирования необходимо знать их относительные значения: e1/m и е2/m. А для их определения необходимо знать значение ширины модуля m. Но как его узнать? Это же не универсальная константа вроде постоянной Планка. Ширина модуля разная не только для разных этикеток со штрих-кодом – она меняется даже в пределах одного и того же символа за счет искажений, возникающих при считывании его сканером (например, если этикетка находится на цилиндрической поверхности), и даже в пределах одного и того же знака символа. Но в этом последнем случае считают, что на протяжении знака она меняется незначительно, и полагают m=S/7, где S – ширина информационного знака символа, состоящего из 7 модулей. И такое определение m в реальных считывающих устройствах проводится для каждого знакасимвола[953]. Оно предусмотрено и алгоритмом декодирования ГОСТа (при вычислении базовых пороговых значений). Таким образом, для декодирования информационного знака символа существенно необходимо знать общую ширину знака, которая определяется всемиштрихами и пробелами, образующими знак.
Приведем пример. Пусть нам встретился знак из трех элементов «штрих-пробел-штрих», в котором все элементы –равной ширины, а ширина поля пробелов справа или слева от этого трехэлементного знака неизвестна. Как он будет декодирован? Для декодирования нужно определить, сколько модулей укладывается в расстояниях e1 и е2, а для этого необходимо знать ширину одного модуля. Но ее можно определить только тогда, когда виден весь знак в целом, со всеми принадлежащими ему пробелами. Если рядом будет пробел с шириной в четыре раза большей, чем ширина каждого из упомянутых элементов, то ширина модуля будет равна ширине каждого элемента; при этом e1/m=e2/m=2, и знак будет декодирован как "6". Если же рядом будет пробел шириной в половину ширины элемента, то модуль будет вдвое уже каждого элемента; при этом e1/m=e2/m=4, и знак будет декодирован как "1".
Итак, утверждение авторов, что пробелы, окружающие трехэлементный знак, игнорируются алгоритмом декодирования, ошибочно – от ширины этих пробелов существенно зависит результат декодирования.
Что же привело авторов исследования к ошибке? Об этом можно лишь догадываться. Может быть, некорректная запись: е1=Е1 и е2=Е2 (нельзя ставить знак равенства между размерной и безразмерной величинами даже если они численно равны). Может быть, то, что авторы свои рассуждения начали с п. З Алгоритма, не показав, как же все-таки они получили значение m=1. Может быть, то, что они отбросили часть процедуры декодирования, связанную с определением «базовых значений RT», не заметив, что она важна не только как задающая некоторые интервалы при наличии всевозможных неточностей, но и как устанавливающая (и это очень важно) масштаб, задающая единицу длины S/7, в которой и выражаются расстояния e1 и е2. Так или иначе, ученые специалисты забыли о величине m и о том, что ее необходимо измерять.
Тем не менее, они получили определенный результат, как будто действительно игнорируя пробелы: «все вспомогательные знаки алгоритмом ГОСТа декодируются как шестерки». Как это могло быть? Теперь-то мы, наконец, приступаем к главной «тайне» исследования, скрываемой его авторами: какие же все-таки знаки они сначала начертали в тетрадке для арифметики, а потом декодировали? Попробуем восстановить пропущенное авторами: п.1 и п.2 Алгоритма.
Тайна исследования ученых – специалистов
Известно следующее:
1. В знаке содержится последовательность элементов равной ширины: «штрих-пробел-штрих» («трехэлементный знак»).
2. Ширина каждого элемента равна одному модулю знака.
3. Ширина модуля знака m=1.
4. Авторы декодировали знак в соответствии с п.4.6 ГОСТа.
Поскольку авторы действовали по ГОСТу, они должны были измерить ширину знака S и поделить ее на 7, определив ширину модуля знака m. Результат деления они сообщили: m=1. Какова же была ширина знака S? Так как m=S/7, то S=m*7. При m=1 S=7! Это означает, что знак, который декодировали ученые – специалисты, состоял из следующей последовательности штрихов и пробелов (все – шириной в один модуль): «Ш П Ш П П П П». А это, в соответствии с табл.4.1 ГОСТа, – знак цифры "6". Таким образом, авторы, пририсовав «по вкусу» к типовому знаку-ограничителю четыре пробела, подменили его знаком шестерки. В результате декодирования знака шестерки получилась, конечно, шестерка.
Подобным же образом они, по-видимому, подменили и центральный знак-ограничитель: с одной стороны знака отбросили один пробел, с другой стороны пририсовали к знаку по вкусу три дополнительных пробела («они все равно не участвуют в декодировании»), получили знак шестерки, декодировали его и опять получили шестерку.
Нам могут возразить: «Для вспомогательного знака шириной S=3, нужно S делить не на 7, а на 3. Тогда и при S=3 получается правильное значение ширины модуля m=1. Так, наверное, и делали ученые – специалисты».
На это ответим следующее: "Чтобы ширину знака S делить не на 7, а на 3, необходимо заранее, еще до выполнения действия деления, распознать декодируемый знак как знак вспомогательный, иначе деление на 3 необъяснимо. После такого распознавания (идентификации) все действия со знаком (измерение каких-то параметров, преобразование) уже не имеют характера декодирования[954]. Декодировать, собственно, уже нечего, «устройство» знака, в общем, уже известно, можно только что-то уточнять, проверять, сравнивать, использовать результаты измерений для экстраполяции. В этом заключается существенное отличие знаков вспомогательных от информационных: после идентификации знака как знака информационного его необходимо именно декодировать – определить, какую цифру (от 0 до 9) он кодирует. Алгоритм ГОСТа все предлагаемые ему знаки рассматривает как информационные и декодирует их. И всегда S делит на 7. Если ученые специалисты делили на 3 и на 5, они просто подменили алгоритм ГОСТа другим алгоритмом, который каким-то образом распознает знак как вспомогательный (еще до п.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84