Изменения

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

Монотонный код Грея

115 байт добавлено, 21:41, 19 декабря 2016
м
Псевдокод
Принимает <tex>n, j</tex>, а так же дополнительный параметр определяющий надо-ли переворачивать кортеж.
<code>
'''function''' p('''int''' n, '''int''' j, '''bool''' reverse = ''false''):'''list<int[n]>'''
'''if''' n == 1 and j == 0
'''if''' '''not''' reverse
'''yield''' (0,) + x
'''else'''
'''for''' x '''in''' p(n - 1, j, reverse=True''true'')
'''yield''' (0,) + x
'''for''' x '''in''' p(n - 1, j - 1, reverse=True''true'')
'''yield''' (1,) + '''tuple'''(x[k] '''for''' k '''in''' perm)
</code>
Генерация монотонного кода Грея при помощи уже написанного генератора <codetex>p</codetex>.
<code>
'''function''' monotonic('''int''' n):'''list<int[n]>'''
'''for''' i '''in''' range(n)
'''for''' x '''in''' (p(n, i) '''if''' i % 2 == 0 '''else''' p(n, i, reverse=True''true''))
'''yield''' x
</code>
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Комбинаторика]]
[[Категория: Комбинаторные объекты ]]

Навигация