<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://vscripts.ru/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexT</id>
		<title>Модулярная арифметика - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlexT"/>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/AlexT"/>
		<updated>2026-05-27T21:59:49Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2</id>
		<title>Пример коррекции ошибки на базе системы остаточных классов</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2"/>
				<updated>2013-12-16T10:48:56Z</updated>
		
		<summary type="html">&lt;p&gt;AlexT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Постановка задачи ==&lt;br /&gt;
В данной статье разбирается пример работы алгоритма коррекции ошибки в одном модулярном канале(аналог исправления ошибки в 4-х битном блоке).&lt;br /&gt;
Пусть  строка, состоящая из 16 бит. Необходимо отследить и исправить одиночную ошибку, внесённую в данную строку.&lt;br /&gt;
Любой строке из 16 бит можно поставить в соответствие число из диапазона &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Далее данное число мы представляем в системе остаточных классов по выбранным нами модулям.&lt;br /&gt;
Затем, внеся одиночную ошибку в любой модуль мы будем исправлять ее.&lt;br /&gt;
Алгоритм заключается в следующем: последовательно исключаем из рассмотрения один из модулей, восстанавливаем число по Китайской Теореме об Остатках и смотрим на величину полученого числа.&lt;br /&gt;
==Теоретические основы алгоритма==&lt;br /&gt;
Пусть имеется &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; взаимно простых чисел &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k&amp;lt;/math&amp;gt;. Назовём их рабочими основаниями. Известно, что в СОК по данным модулям однозначно представляется число из рабочего диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Далее введём два дополнительных взаимно простых основания &amp;lt;math&amp;gt;p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; таких, что все &amp;lt;math&amp;gt;k+2&amp;lt;/math&amp;gt; полученных оснований &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k,p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; будут взаимно простыми. Пусть наше исходное число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; принадлежит диапазону &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Если представить его в СОК по модулям &amp;lt;math&amp;gt;\left \{p_1,p_2,p_3,...,p_k,p_{k+1}\right \}&amp;lt;/math&amp;gt;, затем внести ошибку по любому из модулей, а потом попытаться восстановить данное число по Китайской Теореме об Остатках, то известно, что результат &amp;lt;math&amp;gt;\bar A&amp;gt;p_1*p_2*...*p_k&amp;lt;/math&amp;gt;. Таким образом, имея два контрольных основания мы можем исправлять одиночную ошибку, последовательно исключая по одному из модулей и получая ситуацию, описанную выше. Если мы исключили основание, по которому произошла ошибка, мы получим правильное число, лежащее в пределах диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Пример==&lt;br /&gt;
Пусть имеется 16ти битовая строка &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt;.Мы ставим ей в соответствие число, затем представляем его в Системе Остаточных Классов, вносим ошибку по одному из оснований и исправляем эту ошибку.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 1'''&lt;br /&gt;
Для выполнения данной задачи  выбираем 4 рабочих основания и 2 контрольных. &lt;br /&gt;
Рабочие основания:&amp;lt;math&amp;gt;p_1=13, p_2=16, p_3=17, p_4=19&amp;lt;/math&amp;gt;. Контрольные основания: &amp;lt;math&amp;gt;p_5=21, p_6=23&amp;lt;/math&amp;gt;.&lt;br /&gt;
При таком выборе рабочих оснований мы можем работать с числами из диапазона  от &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;13*16*17*19=67183&amp;gt; 65536&amp;lt;/math&amp;gt;. Таким образом, этих рабочих оснований хватит для работы с нашей исходной строкой.&lt;br /&gt;
Выбор таких рабочих обусловлен тем, что полученный динамический диапазон практически совпадает с исходным &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Изначально строка содержала 16 бит, но после кодирования ( представления строки в СОК и перевода обратно в двоичную системы) мы получим строку длиной &amp;lt;math&amp;gt;4+4+5+5+5+5=28&amp;lt;/math&amp;gt;.&lt;br /&gt;
Таким образом, избыточность составляет &amp;lt;math&amp;gt;28-16=12&amp;lt;/math&amp;gt; бит. Представим это число в СОК:&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2'''&lt;br /&gt;
Процесс кодирования и внесения ошибки:&lt;br /&gt;
Переведем строку &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt; в десятичную систему счисления и получим &amp;lt;math&amp;gt;33.333&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Представим это число в СОК по нашим модулям и получим: &amp;lt;math&amp;gt;33.333=(1, 5, 13, 7, 6, 6)&amp;lt;/math&amp;gt;. Представим всё это в бинарном виде:&lt;br /&gt;
&amp;lt;math&amp;gt;0001 0101 01101 00111 00110  00110&amp;lt;/math&amp;gt;. Это и есть наша закодированная строка. Затем внесем ошибку  по одному из оснований. Для данного примера я выбрал пятое основание, т.е. 21. В результате ошибки мы получим строку, с которой и будет работать декодер.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:module_error_correction_1.png]]&lt;br /&gt;
&lt;br /&gt;
'''Шаг 3'''&lt;br /&gt;
Теперь рассмотрим процесс декодирования:&lt;br /&gt;
На данном этапе мы хотим выяснить: произошла ли ошибка по какому-либо основанию и если произошла, то исправить эту ошибку.&lt;br /&gt;
Рассмотрим строку, полученную в результате кодирования и внесения ошибки:&lt;br /&gt;
&amp;lt;math&amp;gt;0001 0101 00011 00111 00101 00110&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Представим число, соответствующее данной строке, в СОК по нашим модулям:&lt;br /&gt;
&amp;lt;math&amp;gt;\bar A=(1, 5, 13, 7, 5, 6)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Теперь отбрасываем последовательно  по одному основанию и смотрим результат. Если он меньше 67183, то мы принимаем этот результат за исходное число, а по отброшенному основанию произошла ошибка. Пусть мы откидываем первое основание. Тогда по пяти оставшимся мы восстанавливаем число. Получаем систему сравнений:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{  &lt;br /&gt;
           \begin{array}{rcl}  &lt;br /&gt;
            x\equiv5 mod(16) \\  &lt;br /&gt;
            x\equiv13 mod(17) \\&lt;br /&gt;
            x\equiv7 mod(19) \\&lt;br /&gt;
            x\equiv5 mod(21) \\&lt;br /&gt;
            x\equiv6 mod(23) \\&lt;br /&gt;
           \end{array}   &lt;br /&gt;
           \right.  &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Согласно Китайской Теореме об Остатках  данная система имеет одно единственное решение в диапазоне от &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;16*17*19*21*23&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Решением данной системы является число &amp;lt;math&amp;gt;x=627653&amp;lt;/math&amp;gt;. Видим, что число находится вне нашего диапазона, а следовательно по одному из неотброшенных оснований произошла ошибка, а по отброшенному основанию ошибки нет.&lt;br /&gt;
&lt;br /&gt;
Теперь отбросим основание &amp;lt;math&amp;gt;p_2=16&amp;lt;/math&amp;gt;. Проделывая те же действия, что и для первого основания получим, что &amp;lt;math&amp;gt;x=1095680&amp;lt;/math&amp;gt;. Опять мы вышли за допустимый диапазон, а следовательно по второму основанию ошибки нет. &lt;br /&gt;
&lt;br /&gt;
Отбрасывая третье основание &amp;lt;math&amp;gt;p_3=17&amp;lt;/math&amp;gt;, получим &amp;lt;math&amp;gt;x= 1214981&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отбрасывая четвертое основание &amp;lt;math&amp;gt;p_4=19&amp;lt;/math&amp;gt;,  получим &amp;lt;math&amp;gt;x= 1415909&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отбрасывая пятое основание &amp;lt;math&amp;gt;p_5=21&amp;lt;/math&amp;gt;, получим &amp;lt;math&amp;gt;x= 33333&amp;lt;/math&amp;gt;. Полученное число попадает в динамический диапазон, а следовательно, является нашим верным числом.&lt;br /&gt;
Таким образом мы  нашли и разряд, в котором произошла ошибка, а именно блок, отвечающий за остаток по модулю 21, ведь именно этот блок мы исключили на данном этапе восстановления.&lt;/div&gt;</summary>
		<author><name>AlexT</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2</id>
		<title>Пример коррекции ошибки на базе системы остаточных классов</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2"/>
				<updated>2013-12-16T10:46:37Z</updated>
		
		<summary type="html">&lt;p&gt;AlexT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Постановка задачи ==&lt;br /&gt;
В данной статье разбирается пример работы алгоритма коррекции ошибки в одном модулярном канале(аналог исправления ошибки в 4-х битном блоке).&lt;br /&gt;
Пусть  строка, состоящая из 16 бит. Необходимо отследить и исправить одиночную ошибку, внесённую в данную строку.&lt;br /&gt;
Любой строке из 16 бит можно поставить в соответствие число из диапазона &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Далее данное число мы представляем в системе остаточных классов по выбранным нами модулям.&lt;br /&gt;
Затем, внеся одиночную ошибку в любой модуль мы будем исправлять ее.&lt;br /&gt;
Алгоритм заключается в следующем: последовательно исключаем из рассмотрения один из модулей, восстанавливаем число по Китайской Теореме об Остатках и смотрим на величину полученого числа.&lt;br /&gt;
==Теоретические основы алгоритма==&lt;br /&gt;
Пусть имеется &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; взаимно простых чисел &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k&amp;lt;/math&amp;gt;. Назовём их рабочими основаниями. Известно, что в СОК по данным модулям однозначно представляется число из рабочего диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Далее введём два дополнительных взаимно простых основания &amp;lt;math&amp;gt;p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; таких, что все &amp;lt;math&amp;gt;k+2&amp;lt;/math&amp;gt; полученных оснований &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k,p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; будут взаимно простыми. Пусть наше исходное число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; принадлежит диапазону &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Если представить его в СОК по модулям &amp;lt;math&amp;gt;\left \{p_1,p_2,p_3,...,p_k,p_{k+1}\right \}&amp;lt;/math&amp;gt;, затем внести ошибку по любому из модулей, а потом попытаться восстановить данное число по Китайской Теореме об Остатках, то известно, что результат &amp;lt;math&amp;gt;\bar A&amp;gt;p_1*p_2*...*p_k&amp;lt;/math&amp;gt;. Таким образом, имея два контрольных основания мы можем исправлять одиночную ошибку, последовательно исключая по одному из модулей и получая ситуацию, описанную выше. Если мы исключили основание, по которому произошла ошибка, мы получим правильное число, лежащее в пределах диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Пример==&lt;br /&gt;
Пусть имеется 16ти битовая строка &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt;.Мы ставим ей в соответствие число, затем представляем его в Системе Остаточных Классов, вносим ошибку по одному из оснований и исправляем эту ошибку.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 1'''&lt;br /&gt;
Для выполнения данной задачи  выбираем 4 рабочих основания и 2 контрольных. &lt;br /&gt;
Рабочие основания:&amp;lt;math&amp;gt;p_1=13, p_2=16, p_3=17, p_4=19&amp;lt;/math&amp;gt;. Контрольные основания: &amp;lt;math&amp;gt;p_5=21, p_6=23&amp;lt;/math&amp;gt;.&lt;br /&gt;
При таком выборе рабочих оснований мы можем работать с числами из диапазона  от &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;13*16*17*19=67183&amp;gt; 65536&amp;lt;/math&amp;gt;. Таким образом, этих рабочих оснований хватит для работы с нашей исходной строкой.&lt;br /&gt;
Выбор таких рабочих обусловлен тем, что полученный динамический диапазон практически совпадает с исходным &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Изначально строка содержала 16 бит, но после кодирования ( представления строки в СОК и перевода обратно в двоичную системы) мы получим строку длиной &amp;lt;math&amp;gt;4+4+5+5+5+5=28&amp;lt;/math&amp;gt;.&lt;br /&gt;
Таким образом, избыточность составляет &amp;lt;math&amp;gt;28-16=12&amp;lt;/math&amp;gt; бит. Представим это число в СОК:&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2'''&lt;br /&gt;
Процесс кодирования и внесения ошибки:&lt;br /&gt;
Переведем строку &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt; в десятичную систему счисления и получим &amp;lt;math&amp;gt;33.333&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Представим это число в СОК по нашим модулям и получим: &amp;lt;math&amp;gt;33.333=(1, 5, 13, 7, 6, 6)&amp;lt;/math&amp;gt;. Представим всё это в бинарном виде:&lt;br /&gt;
&amp;lt;math&amp;gt;0001 0101 01101 00111 00110  00110&amp;lt;/math&amp;gt;. Это и есть наша закодированная строка. Затем внесем ошибку  по одному из оснований. Для данного примера я выбрал пятое основание, т.е. 21. В результате ошибки мы получим строку, с которой и будет работать декодер.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:module_error_correction_1.png]]&lt;br /&gt;
&lt;br /&gt;
'''Шаг 3'''&lt;br /&gt;
Теперь рассмотрим процесс декодирования:&lt;br /&gt;
На данном этапе мы хотим выяснить: произошла ли ошибка по какому-либо основанию и если произошла, то исправить эту ошибку.&lt;br /&gt;
Рассмотрим строку, полученную в результате кодирования и внесения ошибки:&lt;br /&gt;
&amp;lt;math&amp;gt;0001 0101 00011 00111 00101 00110&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Представим число, соответствующее данной строке, в СОК по нашим модулям:&lt;br /&gt;
&amp;lt;math&amp;gt;\bar A=(1, 5, 13, 7, 5, 6)&amp;lt;/math&amp;gt;.&lt;br /&gt;
Теперь отбрасываем последовательно  по одному основанию и смотрим результат. Если он меньше 67183, то мы принимаем этот результат за исходное число, а по отброшенному основанию произошла ошибка. Пусть мы откидываем первое основание. Тогда по пяти оставшимся мы восстанавливаем число. Получаем систему сравнений:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{  &lt;br /&gt;
           \begin{array}{rcl}  &lt;br /&gt;
            x\equiv5 mod(16) \\  &lt;br /&gt;
            x\equiv13 mod(17) \\&lt;br /&gt;
            x\equiv7 mod(19) \\&lt;br /&gt;
            x\equiv5 mod(21) \\&lt;br /&gt;
            x\equiv6 mod(23) \\&lt;br /&gt;
           \end{array}   &lt;br /&gt;
           \right.  &lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Согласно Китайской Теореме об Остатках  данная система имеет одно единственное решение в диапазоне от &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;16*17*19*21*23&amp;gt;&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Решением данной системы является число &amp;lt;math&amp;gt;x=627653&amp;lt;/math&amp;gt;. Видим, что число находится вне нашего диапазона, а следовательно по одному из неотброшенных оснований произошла ошибка, а по отброшенному основанию ошибки нет.&lt;br /&gt;
&lt;br /&gt;
Теперь отбросим основание &amp;lt;math&amp;gt;p_2=16&amp;lt;/math&amp;gt;. Проделывая те же действия, что и для первого основания получим, что &amp;lt;math&amp;gt;x=1095680&amp;lt;/math&amp;gt;. Опять мы вышли за допустимый диапазон, а следовательно по второму основанию ошибки нет. &lt;br /&gt;
&lt;br /&gt;
Отбрасывая третье основание &amp;lt;math&amp;gt;p_3=17&amp;lt;/math&amp;gt;, получим &amp;lt;math&amp;gt;x= 1214981&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Отбрасывая четвертое основание &amp;lt;math&amp;gt;p_4=19&amp;lt;/math&amp;gt;,  получим &amp;lt;math&amp;gt;x= 1415909&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Отбрасывая пятое основание &amp;lt;math&amp;gt;p_5=21&amp;lt;/math&amp;gt;, получим &amp;lt;math&amp;gt;x= 33333&amp;lt;/math&amp;gt;. Полученное число попадает в динамический диапазон, а следовательно, является нашим верным числом.&lt;br /&gt;
Таким образом мы  нашли и разряд, в котором произошла ошибка, а именно блок, отвечающий за остаток по модулю 21, ведь именно этот блок мы исключили на данном этапе восстановления.&lt;/div&gt;</summary>
		<author><name>AlexT</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Module_error_correction_1.png</id>
		<title>Файл:Module error correction 1.png</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Module_error_correction_1.png"/>
				<updated>2013-12-16T10:44:23Z</updated>
		
		<summary type="html">&lt;p&gt;AlexT: Внесение ошибки по одному из модулей&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Внесение ошибки по одному из модулей&lt;/div&gt;</summary>
		<author><name>AlexT</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2</id>
		<title>Пример коррекции ошибки на базе системы остаточных классов</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2"/>
				<updated>2013-12-16T08:38:23Z</updated>
		
		<summary type="html">&lt;p&gt;AlexT: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Постановка задачи ==&lt;br /&gt;
В данной статье разбирается пример работы алгоритма коррекции ошибки в одном модулярном канале(аналог исправления ошибки в 4-х битном блоке).&lt;br /&gt;
Пусть  строка, состоящая из 16 бит. Необходимо отследить и исправить одиночную ошибку, внесённую в данную строку.&lt;br /&gt;
Любой строке из 16 бит можно поставить в соответствие число из диапазона &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Далее данное число мы представляем в системе остаточных классов по выбранным нами модулям.&lt;br /&gt;
Затем, внеся одиночную ошибку в любой модуль мы будем исправлять ее.&lt;br /&gt;
Алгоритм заключается в следующем: последовательно исключаем из рассмотрения один из модулей, восстанавливаем число по Китайской Теореме об Остатках и смотрим на величину полученого числа.&lt;br /&gt;
==Теоретические основы алгоритма==&lt;br /&gt;
Пусть имеется &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; взаимно простых чисел &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k&amp;lt;/math&amp;gt;. Назовём их рабочими основаниями. Известно, что в СОК по данным модулям однозначно представляется число из рабочего диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Далее введём два дополнительных взаимно простых основания &amp;lt;math&amp;gt;p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; таких, что все &amp;lt;math&amp;gt;k+2&amp;lt;/math&amp;gt; полученных оснований &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_k,p_{k+1},p_{k+2}&amp;lt;/math&amp;gt; будут взаимно простыми. Пусть наше исходное число &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; принадлежит диапазону &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;. Если представить его в СОК по модулям &amp;lt;math&amp;gt;\left \{p_1,p_2,p_3,...,p_k,p_{k+1}\right \}&amp;lt;/math&amp;gt;, затем внести ошибку по любому из модулей, а потом попытаться восстановить данное число по Китайской Теореме об Остатках, то известно, что результат &amp;lt;math&amp;gt;\bar A&amp;gt;p_1*p_2*...*p_k&amp;lt;/math&amp;gt;. Таким образом, имея два контрольных основания мы можем исправлять одиночную ошибку, последовательно исключая по одному из модулей, мы получаем ситуацию, описанную выше. Таким образом, если мы исключили основание, по которому произошла ошибка, мы получим правильное число, лежащее в пределах диапазона &amp;lt;math&amp;gt;[0...p_1*p_2*...*p_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
==Пример==&lt;br /&gt;
Пусть имеется 16ти битовая строка &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt;.Мы ставим ей в соответствие число, затем представляем его в Системе Остаточных Классов, вносим ошибку по одному из оснований и исправляем эту ошибку.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 1'''&lt;br /&gt;
Для выполнения данной задачи  выбираем 4 рабочих основания и 2 контрольных. &lt;br /&gt;
Рабочие основания:&amp;lt;math&amp;gt;p_1=13, p_2=16, p_3=17, p_4=19&amp;lt;/math&amp;gt;. Контрольные основания: &amp;lt;math&amp;gt;p_5=21, p_6=23&amp;lt;/math&amp;gt;.&lt;br /&gt;
При таком выборе рабочих оснований мы можем работать с числами из диапазона  от &amp;lt;math&amp;gt;0&amp;lt;/math&amp;gt; до &amp;lt;math&amp;gt;13*16*17*19=67183&amp;gt; 65536&amp;lt;/math&amp;gt;. Таким образом, этих рабочих оснований хватит для работы с нашей исходной строкой.&lt;br /&gt;
Выбор таких рабочих обусловлен тем, что полученный динамический диапазон практически совпадает с исходным &amp;lt;math&amp;gt;[0...65536)&amp;lt;/math&amp;gt;. Изначально строка содержала 16 бит, но после кодирования ( представления строки в СОК и перевода обратно в двоичную системы) мы получим строку длиной &amp;lt;math&amp;gt;4+4+5+5+5+5=28&amp;lt;/math&amp;gt;.&lt;br /&gt;
Таким образом, избыточность составляет &amp;lt;math&amp;gt;28-16=12&amp;lt;/math&amp;gt; бит.&lt;br /&gt;
&lt;br /&gt;
'''Шаг 2'''&lt;br /&gt;
Процесс кодирования и внесения ошибки:&lt;br /&gt;
Переведем строку &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt; в десятичную систему счисления и получим &amp;lt;math&amp;gt;33.333&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlexT</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2</id>
		<title>Пример коррекции ошибки на базе системы остаточных классов</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BA%D1%86%D0%B8%D0%B8_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BE%D1%87%D0%BD%D1%8B%D1%85_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2"/>
				<updated>2013-12-16T07:33:36Z</updated>
		
		<summary type="html">&lt;p&gt;AlexT: Новая страница: «== Введение == В данной статье разбирается пример работы алгоритма коррекции одиночной ош…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Введение ==&lt;br /&gt;
В данной статье разбирается пример работы алгоритма коррекции одиночной ошибки, основанного на использовании избыточной системы остаточных классов.&lt;br /&gt;
Имеется  строка &amp;lt;math&amp;gt;1000001000110101&amp;lt;/math&amp;gt;, состоящая из 16 бит. Необходимо отследить и исправить одиночную ошибку, внесённую в данную строку.&lt;br /&gt;
==Теоретические основы алгоритма==&lt;br /&gt;
Пусть имеется &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; взаимно простых модулей &amp;lt;math&amp;gt;p_1,p_2,p_3,...,p_n&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlexT</name></author>	</entry>

	</feed>