<?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=217.66.156.137&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=217.66.156.137&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/217.66.156.137"/>
		<updated>2026-05-16T21:05:40Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%B4%D1%8B_%D0%B0%D0%BD%D1%82%D0%B8%D0%B3%D1%80%D0%B5%D1%8F&amp;diff=28046</id>
		<title>Коды антигрея</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%B4%D1%8B_%D0%B0%D0%BD%D1%82%D0%B8%D0%B3%D1%80%D0%B5%D1%8F&amp;diff=28046"/>
				<updated>2012-12-19T13:28:25Z</updated>
		
		<summary type="html">&lt;p&gt;217.66.156.137: /* Алгоритм генерации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Определение ==&lt;br /&gt;
&lt;br /&gt;
{{Определение &lt;br /&gt;
|definition=&lt;br /&gt;
'''Код антигрея (Anti-Gray Code)''' {{---}} такое упорядочивание &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-ичных векторов, что [[расстояние Хэмминга]] между двумя соседними векторами максимально. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Здесь должно быть написано о том нафига вообще все это нужно.&lt;br /&gt;
&lt;br /&gt;
== Двоичный код антигрея ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Двоичный код антигрея''' {{---}} такое упорядочивание двоичных векторов длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, что соседние отличаются не менее, чем в &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;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;n&amp;lt;/tex&amp;gt;. Тогда для первых &amp;lt;tex&amp;gt;2^{n-1}&amp;lt;/tex&amp;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;
  genBinAntiGray(n)&lt;br /&gt;
    for i = 1 to 2^(n-1)&lt;br /&gt;
      v = getMirrorGray(i, n)&lt;br /&gt;
      print(v)&lt;br /&gt;
      inverseBits(v)&lt;br /&gt;
      print(v)&lt;br /&gt;
&lt;br /&gt;
=== Доказательство корректности алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Здесь приведено доказательство корректности алгоритма выше&lt;br /&gt;
&lt;br /&gt;
== Троичный код антигрея ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Троичный код антигрея''' {{---}} такое упорядочивание троичных вектором, что соседние отличаются во всех разрядах.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
В отличие от двоичного кода антигрея, здесь мы не сталкиваемся с проблемой однозначности &amp;quot;соседа&amp;quot; и можем привести такой код, соседние элементы которого будут отличаться во всех разрядах.&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;3^{n-1}&amp;lt;/tex&amp;gt; векторов будем выводить все его поразрядные циклические сдвиги.&lt;br /&gt;
&lt;br /&gt;
Утверждается, что выполняя эти действия мы получим троичный код антигрея.&lt;br /&gt;
&lt;br /&gt;
=== Псевдокод ===&lt;br /&gt;
&lt;br /&gt;
  genTernAntiGray(n)&lt;br /&gt;
    for v = &amp;lt;000..0&amp;gt; to &amp;lt;022..2&amp;gt;&lt;br /&gt;
      digitCircleShift(v)&lt;br /&gt;
      while(v[0] != 0)&lt;br /&gt;
        print(v)&lt;br /&gt;
        digitCircleShift(v)&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;
*[http://en.wikipedia.org/wiki/Talk%3AGray_code#Anti-Gray_Codes.3F Talk:Gray Code - Wikipedia, the free encyclopedia]&lt;/div&gt;</summary>
		<author><name>217.66.156.137</name></author>	</entry>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%B4%D1%8B_%D0%B0%D0%BD%D1%82%D0%B8%D0%B3%D1%80%D0%B5%D1%8F&amp;diff=28045</id>
		<title>Коды антигрея</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%B4%D1%8B_%D0%B0%D0%BD%D1%82%D0%B8%D0%B3%D1%80%D0%B5%D1%8F&amp;diff=28045"/>
				<updated>2012-12-19T13:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;217.66.156.137: /* Алгоритм генерации */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Определение ==&lt;br /&gt;
&lt;br /&gt;
{{Определение &lt;br /&gt;
|definition=&lt;br /&gt;
'''Код антигрея (Anti-Gray Code)''' {{---}} такое упорядочивание &amp;lt;tex&amp;gt;k&amp;lt;/tex&amp;gt;-ичных векторов, что [[расстояние Хэмминга]] между двумя соседними векторами максимально. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Здесь должно быть написано о том нафига вообще все это нужно.&lt;br /&gt;
&lt;br /&gt;
== Двоичный код антигрея ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Двоичный код антигрея''' {{---}} такое упорядочивание двоичных векторов длины &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, что соседние отличаются не менее, чем в &amp;lt;tex&amp;gt;n-1&amp;lt;/tex&amp;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;n&amp;lt;/tex&amp;gt;. Тогда для первых &amp;lt;tex&amp;gt;2^{n-1}&amp;lt;/tex&amp;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;
  genBinAntiGray(n)&lt;br /&gt;
    for i = 1 to 2^(n-1)&lt;br /&gt;
      v = getMirrorGray(i, n)&lt;br /&gt;
      print(v)&lt;br /&gt;
      inverseBits(v)&lt;br /&gt;
      print(v)&lt;br /&gt;
&lt;br /&gt;
=== Доказательство корректности алгоритма ===&lt;br /&gt;
&lt;br /&gt;
Здесь приведено доказательство корректности алгоритма выше&lt;br /&gt;
&lt;br /&gt;
== Троичный код антигрея ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition=&lt;br /&gt;
'''Троичный код антигрея''' {{---}} такое упорядочивание троичных вектором, что соседние отличаются во всех разрядах.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
В отличие от двоичного кода антигрея, здесь мы не сталкиваемся с проблемой однозначности &amp;quot;соседа&amp;quot; и можем привести такой код, соседние элементы которого будут отличаться во всех разрядах.&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;
  genTernAntiGray(n)&lt;br /&gt;
    for v = &amp;lt;000..0&amp;gt; to &amp;lt;022..2&amp;gt;&lt;br /&gt;
      digitCircleShift(v)&lt;br /&gt;
      while(v[0] != 0)&lt;br /&gt;
        print(v)&lt;br /&gt;
        digitCircleShift(v)&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;
*[http://en.wikipedia.org/wiki/Talk%3AGray_code#Anti-Gray_Codes.3F Talk:Gray Code - Wikipedia, the free encyclopedia]&lt;/div&gt;</summary>
		<author><name>217.66.156.137</name></author>	</entry>

	</feed>