Изменения

Перейти к: навигация, поиск

Коды Грея

222 байта добавлено, 17:50, 14 января 2015
Алгоритм построения
== Алгоритм построения ==
[[Файл:Gray_Code_Building.png|440px300px|thumb|right|Получение зеркального двоичного кода Грея.]]
{| border="0"
|align="left" colspan="4"|
*<tex>\mathtt{GrayCode}</tex> {{---}} двумерный массивтипа '''boolean''', в котором <tex>GrayCode[a, b]</tex> {{---}} <tex>b</tex>-ый бит в <tex>a</tex>-ом коде Грея.*<tex>\mathtt{p}</tex> {{---}} Счетчик количества уже имеющихся кодов*<tex>\mathtt{t}</tex> {{---}} Показывает количество кодов в <tex>(a-1)</tex>-м коде Грея
<code>
buildCode(n):
GrayCode[1, n] = 0'''false''' GrayCode[2, n] = 1 '''true''' <font color=green> // Построение кода длины 1 </font> p = 2 <font color=green> // Где p {{---}} количество уже имеющихся кодов </font>
'''for''' i = 2 '''to''' n
t = p
p = p * 2
'''for''' k = (p / 2 + 1) '''to''' p
GrayCode[k] = GrayCode[t] <font color=green> // Отражение имеющихся кодов </font> GrayCode[t, n + 1 - i] = 0'''false''' GrayCode[k, n + 1 - i] = 1 '''true''' <font color=green> // Добавление 0 и 1 в начало </font>
t--
return(GrayCode)
</code>
|}
317
правок

Навигация