Skip to content

Instantly share code, notes, and snippets.

@generall
Created September 15, 2013 17:23
Show Gist options
  • Save generall/6572704 to your computer and use it in GitHub Desktop.
Save generall/6572704 to your computer and use it in GitHub Desktop.
// 3 -> 1 CC
//Найти последний символ
2q1->2q1R
1q1->1q1R
0q1->0q1R
Bq1->Bq2L // Нашли последний символ, встали на него и начинаем вычитание
//Вычесть 1 из троичного числа
2q2->1q3R // Прибавление 1 к единичному числу
1q2->0q3R // Прибавление 1 к единичному числу
0q2->0q4H // занимать значение из вышестоящих разрядов
Bq2->BSTOPR //нет числа
Bq3->Bq7R // пропускаем 1 ячейку между троичным и единичным числом
0q4->0q4L // если в большем разряде опять 0, идем дальше
1q4->0q5R // заполняем все нули 2 т.е. 2000 -> 1999
2q4->1q5R // аналогично
Bq4->Bq6R // стираем нули т.е. 00021 -> BBB21
0q5->2q5R
1q5->1q1H // Итерация завершена, число уменьшино на 1, повторяем
2q5->2q1H // аналогично
Bq5->Bq3H // Прибавление 1 к единичному числу, если троичное число кончилось
0q6->Bq6R
1q6->1q1H // Итерация завершена, число уменьшино на 1, повторяем
2q6->1q1H // аналогично
Bq6->BSTOPR //число кончилось. успешное завершение
Bq7->1q8H //добавление 1 и возврат
1q7->1q7R //поиск конца последовательности единиц
1q8->1q8L // возврат от 1 к 3 числу
Bq8->Bq2L // возврат завершен
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment