<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.18.162.231&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=5.18.162.231&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%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/5.18.162.231"/>
		<updated>2026-08-11T01:00:06Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,_%D0%BA%D0%BE%D0%B4_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=41922</id>
		<title>Избыточное кодирование, код Хэмминга</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,_%D0%BA%D0%BE%D0%B4_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=41922"/>
				<updated>2014-12-06T19:34:27Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.162.231: /* Кодирование Хэмминга */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Избыточное кодирование''' (англ. ''redundant encoding'') {{---}} вид кодирования, использующий избыточное количество информации с целью последующего контроля целостности данных при записи/воспроизведении информации или при её передаче по линиям связи.&lt;br /&gt;
&lt;br /&gt;
== Код, определяющий одну ошибку ==&lt;br /&gt;
Увеличив объем кода на &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; бит, можно получить возможность определять при передаче наличие одной ошибки. Для этого к коду нужно добавить бит &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;:  &amp;lt;tex&amp;gt;0110..10x&amp;lt;/tex&amp;gt;, такой, чтобы сумма всех единиц была четной. В случае, если контрольная сумма окажется нечетной, следует отправить запрос на повторную посылку элемента, в котором была обнаружена ошибка. Такое кодирование применяется только если вероятность ошибки крайне мала, например, в оперативной памяти компьютера.&lt;br /&gt;
&lt;br /&gt;
== Кодирование Хэмминга ==&lt;br /&gt;
Кодирование Хэмминга предусматривает как возможность обнаружения ошибки, так и возможность её исправления.&lt;br /&gt;
Рассмотрим простой пример {{---}} закодируем четыре бита: &amp;lt;tex&amp;gt;a, b, c, d&amp;lt;/tex&amp;gt;. Полученный код будет иметь длину &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; бит и выглядеть следующим образом: &amp;lt;tex&amp;gt;a,b,c,d, a \oplus b, c \oplus d, a \oplus c, b \oplus d.&amp;lt;/tex&amp;gt;&lt;br /&gt;
Рассмотрим табличную визуализацию кода:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;  bgcolor=#F0F0F0&lt;br /&gt;
! &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt; ||style=&amp;quot;background:#FFF&amp;quot;| &amp;lt;tex bgcolor=#FFF&amp;gt;a \oplus b&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;d&amp;lt;/tex&amp;gt; ||style=&amp;quot;background:#FFF&amp;quot;| &amp;lt;tex&amp;gt;c \oplus d&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
|&amp;lt;tex&amp;gt;a \oplus c&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt; a \oplus c &amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Как видно из таблицы, даже если один из битов &amp;lt;tex&amp;gt;a, b, c, d&amp;lt;/tex&amp;gt; передался с ошибкой, содержащие его &amp;lt;tex&amp;gt;xor&amp;lt;/tex&amp;gt;-суммы не сойдутся. Итого, зная строку и столбец в проиллюстрированной таблице можно точно исправить ошибочный бит. Если один из битов &amp;lt;tex&amp;gt;a \oplus b, a \oplus c, b \oplus d, c\oplus d&amp;lt;/tex&amp;gt; передался с ошибкой, то не сойдется только одна сумма и очевидно, что можно легко определить какой бит неверный &lt;br /&gt;
&lt;br /&gt;
По аналогичному принципу можно закодировать любое число бит. Пусть мы имеем исходную строку длиной в &amp;lt;tex&amp;gt;2^k&amp;lt;/tex&amp;gt; бит. Для получения её кода добавим к ней &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; пар бит по следующему принципу:&lt;br /&gt;
*Первая пара: сумма четных бит и сумма нечетных бит&lt;br /&gt;
*Вторая пара: сумма тех бит, в чьем номере второй бит с конца ноль и сумма тех бит, в чьем номере второй бит с конца единица&lt;br /&gt;
...&lt;br /&gt;
*&amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тая пара: сумма тех бит, в чьем номере &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тый бит с конца ноль и сумма тех бит, в чьем номере &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тый бит с конца единица&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Ham3.jpg|1000px|thumb|left|Соответствие добавленной информации исходным битам. Первый вариант кодирования соответствует использованию битов, раскрашенных в тёмные и светлые цвета, оптимизация — в тёмные цвета и серый]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Легко понять, что если в одном бите из строки допущена ошибка, то с помощью дописанных &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; пар бит можно точно определить, какой именно бит ошибочный. Это объясняется тем, что каждая пара определяет один бит номера ошибочного бита в строке. Всего пар &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, следовательно мы имеем &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; бит номера ошибочного бита, что вполне достаточно: общее число бит строки не превосходит &amp;lt;tex&amp;gt;2^k+2k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь заметим, что в случае наличия ошибки в исходной строке, ровно один бит в каждой паре будет равен единице. Тогда можно оставить только один бит из пары. Однако этого будет недостаточно, поскольку если только один добавленный бит не соответствует строке, то нельзя понять, ошибка в нём или в строке. На этот случай можно добавить ещё один контрольный бит {{---}} &amp;lt;tex&amp;gt; \mathrm X \mathrm O \mathrm R&amp;lt;/tex&amp;gt; всех битов строки.&lt;br /&gt;
&lt;br /&gt;
Итого, увеличивая код длиной &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;\log_2 n + 1&amp;lt;/tex&amp;gt;, можно обнаружить и исправить одну ошибку.&lt;br /&gt;
&lt;br /&gt;
== Определение и устранение ошибок в общем случае ==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;\Sigma&amp;lt;/tex&amp;gt; &amp;amp;mdash; исходный алфавит, &amp;lt;tex&amp;gt;C: \Sigma \to B^m&amp;lt;/tex&amp;gt; &amp;amp;mdash; кодирование, &amp;lt;tex&amp;gt;B=(0,1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;d: B^m \times B^m \to \mathbb{R}&amp;lt;/tex&amp;gt; &amp;amp;mdash; [[расстояние Хэмминга]] между двумя кодами. &amp;lt;br&amp;gt;&lt;br /&gt;
Определим &amp;lt;tex&amp;gt;d_0 = \min&amp;lt;/tex&amp;gt; &amp;lt;math&amp;gt;~d(c(x),c(y))&amp;lt;/math&amp;gt;, &amp;lt;tex&amp;gt;x,y \in \Sigma&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x \ne y&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда легко понять, что код, полученный преобразованием &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; может исправлять &amp;lt;math&amp;gt;~[&amp;lt;/math&amp;gt;&amp;lt;tex dpi = 150&amp;gt;  {d_0-1}\over{2}&amp;lt;/tex&amp;gt;&amp;lt;math&amp;gt;~]&amp;lt;/math&amp;gt; и обнаруживать &amp;lt;tex&amp;gt;[d_0-1]&amp;lt;/tex&amp;gt; ошибок. Действительно, при любом натуральном количестве допустимых ошибок &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; любой код &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; образует вокруг себя проколотый шар таких строк &amp;lt;tex&amp;gt;S_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;0&amp;lt;d(S,S_i)\leqslant r&amp;lt;/tex&amp;gt;. Если этот шар не содержит других кодов (что выполняется при &amp;lt;tex&amp;gt;r&amp;lt;d_0&amp;lt;/tex&amp;gt;) , то можно утверждать, что если в него попадает строка, то она ошибочна. Аналогично можно утверждать, что если шары всех кодов не пересекаются (что выполняется при &amp;lt;tex dpi = 150&amp;gt;r \leqslant {{d_0-1}\over{2}} &amp;lt;/tex&amp;gt;), то попавшую в шар строку &amp;lt;tex&amp;gt;S_i&amp;lt;/tex&amp;gt; можно считать ошибочной и тождественно исправить на центр шара &amp;amp;mdash; строку &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Ham.png|350px]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Hamming_code Wikipedia {{---}} Hamming code]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы сжатия ]]&lt;/div&gt;</summary>
		<author><name>5.18.162.231</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,_%D0%BA%D0%BE%D0%B4_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=41913</id>
		<title>Избыточное кодирование, код Хэмминга</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%98%D0%B7%D0%B1%D1%8B%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,_%D0%BA%D0%BE%D0%B4_%D0%A5%D1%8D%D0%BC%D0%BC%D0%B8%D0%BD%D0%B3%D0%B0&amp;diff=41913"/>
				<updated>2014-12-06T18:53:26Z</updated>
		
		<summary type="html">&lt;p&gt;5.18.162.231: /* Кодирование Хэмминга */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Избыточное кодирование''' (англ. ''redundant encoding'') {{---}} вид кодирования, использующий избыточное количество информации с целью последующего контроля целостности данных при записи/воспроизведении информации или при её передаче по линиям связи.&lt;br /&gt;
&lt;br /&gt;
== Код, определяющий одну ошибку ==&lt;br /&gt;
Увеличив объем кода на &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; бит, можно получить возможность определять при передаче наличие одной ошибки. Для этого к коду нужно добавить бит &amp;lt;tex&amp;gt;x&amp;lt;/tex&amp;gt;:  &amp;lt;tex&amp;gt;0110..10x&amp;lt;/tex&amp;gt;, такой, чтобы сумма всех единиц была четной. В случае, если контрольная сумма окажется нечетной, следует отправить запрос на повторную посылку элемента, в котором была обнаружена ошибка. Такое кодирование применяется только если вероятность ошибки крайне мала, например, в оперативной памяти компьютера.&lt;br /&gt;
&lt;br /&gt;
== Кодирование Хэмминга ==&lt;br /&gt;
Кодирование Хэмминга предусматривает как возможность обнаружения ошибки, так и возможность её исправления.&lt;br /&gt;
Рассмотрим простой пример {{---}} закодируем четыре бита: &amp;lt;tex&amp;gt;a, b, c, d&amp;lt;/tex&amp;gt;. Полученный код будет иметь длину &amp;lt;tex&amp;gt;8&amp;lt;/tex&amp;gt; бит и выглядеть следующим образом: &amp;lt;tex&amp;gt;a,b,c,d, a \oplus b, c \oplus d, a \oplus c, b \oplus d.&amp;lt;/tex&amp;gt;&lt;br /&gt;
Рассмотрим табличную визуализацию кода:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot;  bgcolor=#F0F0F0&lt;br /&gt;
! &amp;lt;tex&amp;gt;a&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;b&amp;lt;/tex&amp;gt; ||style=&amp;quot;background:#FFF&amp;quot;| &amp;lt;tex bgcolor=#FFF&amp;gt;a \oplus b&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#F0F0F0&lt;br /&gt;
! &amp;lt;tex&amp;gt;c&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt;d&amp;lt;/tex&amp;gt; ||style=&amp;quot;background:#FFF&amp;quot;| &amp;lt;tex&amp;gt;c \oplus d&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFF&lt;br /&gt;
|&amp;lt;tex&amp;gt;a \oplus c&amp;lt;/tex&amp;gt; || &amp;lt;tex&amp;gt; a \oplus c &amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Как видно из таблицы, даже если один из битов &amp;lt;tex&amp;gt;a, b, c, d&amp;lt;/tex&amp;gt; передался с ошибкой, содержащие его &amp;lt;tex&amp;gt;xor&amp;lt;/tex&amp;gt;-суммы не сойдутся. Итого, зная строку и столбец в проиллюстрированной таблице можно точно исправить ошибочный бит. Если один из битов &amp;lt;tex&amp;gt;a \oplus b, a \oplus c, b \oplus d, c\oplus d&amp;lt;/tex&amp;gt; передался с ошибкой, то не сойдется только одна сумма и очевидно, и тогда легко можно определить какой бит неверный &lt;br /&gt;
&lt;br /&gt;
По аналогичному принципу можно закодировать любое число бит. Пусть мы имеем исходную строку длиной в &amp;lt;tex&amp;gt;2^k&amp;lt;/tex&amp;gt; бит. Для получения её кода добавим к ней &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; пар бит по следующему принципу:&lt;br /&gt;
*Первая пара: сумма четных бит и сумма нечетных бит&lt;br /&gt;
*Вторая пара: сумма тех бит, в чьем номере второй бит с конца ноль и сумма тех бит, в чьем номере второй бит с конца единица&lt;br /&gt;
...&lt;br /&gt;
*&amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тая пара: сумма тех бит, в чьем номере &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тый бит с конца ноль и сумма тех бит, в чьем номере &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-тый бит с конца единица&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Ham3.jpg|1000px|thumb|left|Соответствие добавленной информации исходным битам. Первый вариант кодирования соответствует использованию битов, раскрашенных в тёмные и светлые цвета, оптимизация — в тёмные цвета и серый]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Легко понять, что если в одном бите из строки допущена ошибка, то с помощью дописанных &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; пар бит можно точно определить, какой именно бит ошибочный. Это объясняется тем, что каждая пара определяет один бит номера ошибочного бита в строке. Всего пар &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;, следовательно мы имеем &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt; бит номера ошибочного бита, что вполне достаточно: общее число бит строки не превосходит &amp;lt;tex&amp;gt;2^k+2k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Теперь заметим, что в случае наличия ошибки в исходной строке, ровно один бит в каждой паре будет равен единице. Тогда можно оставить только один бит из пары. Однако этого будет недостаточно, поскольку если только один добавленный бит не соответствует строке, то нельзя понять, ошибка в нём или в строке. На этот случай можно добавить ещё один контрольный бит {{---}} &amp;lt;tex&amp;gt; \mathrm X \mathrm O \mathrm R&amp;lt;/tex&amp;gt; всех битов строки.&lt;br /&gt;
&lt;br /&gt;
Итого, увеличивая код длиной &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; на &amp;lt;tex&amp;gt;\log_2 n + 1&amp;lt;/tex&amp;gt;, можно обнаружить и исправить одну ошибку.&lt;br /&gt;
&lt;br /&gt;
== Определение и устранение ошибок в общем случае ==&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;\Sigma&amp;lt;/tex&amp;gt; &amp;amp;mdash; исходный алфавит, &amp;lt;tex&amp;gt;C: \Sigma \to B^m&amp;lt;/tex&amp;gt; &amp;amp;mdash; кодирование, &amp;lt;tex&amp;gt;B=(0,1)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;d: B^m \times B^m \to \mathbb{R}&amp;lt;/tex&amp;gt; &amp;amp;mdash; [[расстояние Хэмминга]] между двумя кодами. &amp;lt;br&amp;gt;&lt;br /&gt;
Определим &amp;lt;tex&amp;gt;d_0 = \min&amp;lt;/tex&amp;gt; &amp;lt;math&amp;gt;~d(c(x),c(y))&amp;lt;/math&amp;gt;, &amp;lt;tex&amp;gt;x,y \in \Sigma&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x \ne y&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Тогда легко понять, что код, полученный преобразованием &amp;lt;tex&amp;gt;C&amp;lt;/tex&amp;gt; может исправлять &amp;lt;math&amp;gt;~[&amp;lt;/math&amp;gt;&amp;lt;tex dpi = 150&amp;gt;  {d_0-1}\over{2}&amp;lt;/tex&amp;gt;&amp;lt;math&amp;gt;~]&amp;lt;/math&amp;gt; и обнаруживать &amp;lt;tex&amp;gt;[d_0-1]&amp;lt;/tex&amp;gt; ошибок. Действительно, при любом натуральном количестве допустимых ошибок &amp;lt;tex&amp;gt;r&amp;lt;/tex&amp;gt; любой код &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; образует вокруг себя проколотый шар таких строк &amp;lt;tex&amp;gt;S_i&amp;lt;/tex&amp;gt;, что &amp;lt;tex&amp;gt;0&amp;lt;d(S,S_i)\leqslant r&amp;lt;/tex&amp;gt;. Если этот шар не содержит других кодов (что выполняется при &amp;lt;tex&amp;gt;r&amp;lt;d_0&amp;lt;/tex&amp;gt;) , то можно утверждать, что если в него попадает строка, то она ошибочна. Аналогично можно утверждать, что если шары всех кодов не пересекаются (что выполняется при &amp;lt;tex dpi = 150&amp;gt;r \leqslant {{d_0-1}\over{2}} &amp;lt;/tex&amp;gt;), то попавшую в шар строку &amp;lt;tex&amp;gt;S_i&amp;lt;/tex&amp;gt; можно считать ошибочной и тождественно исправить на центр шара &amp;amp;mdash; строку &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Файл:Ham.png|350px]]&lt;br /&gt;
&lt;br /&gt;
== Источники информации ==&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Hamming_code Wikipedia {{---}} Hamming code]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Алгоритмы сжатия ]]&lt;/div&gt;</summary>
		<author><name>5.18.162.231</name></author>	</entry>

	</feed>