317
правок
Изменения
→Псевдокод
{| 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>
|}