Pull to refresh

Comments 5

Предположим, что программа никогда не создаст ноль. Тогда она войдет во все квадратные скобки и зависнет в последней. Теперь легко подобрать ленту, чтобы программа действительно никогда не создала ноль. Если она в бесконечном цикле каждый раз сдвигается, то достаточно исходную ленту заполнить достаточно большим числом. Если не сдвигается, то сделать числа, которые она за одну итерацию цикла уменьшает, достаточно малыми отрицательными, а которые она увеличивает — достаточно большими положительными.
Да, все правильно. Так что ленту расчистить не удастся…
Если на ленте есть 4 нулевых ячейки, идущих подряд, то очистить пятую (слева от них) можно так:
[>>+[[<<-[>]>>[[-]+>>[-]--<]>++<<-]>>[-<<++<<+[>]>>[[-]>>[-]<]>]<<]<<]

(в начале каретка стоит на ячейке, которую надо очистить).

Найти способ, работающий на трех свободных ячейках, пока не удается.
if(a>b) C; else D;if(a>=b) C; else D;

или

h=1;
a++;
while(h){
if(a==0){ D; a=b=1; h=0; }
if(b==0){ C; a=b=1; h=0; }
a--; b--;
}

Когда а и b могли одновременно дойти до 0, и всеравно выполнится С.
Sign up to leave a comment.

Articles