Имеем строку из единиц длиной 99 символов. Пока в строке имеется подстрока 111, выполняется цикл. Подстрока 111 заменяется на 2 и это уменьшает длину строки на 2 символа. Эта операция повторяется, пока не появится подстрока 222, что достигается за три прохода по циклу. При этом длина строки в целом сократится на 6. Подстрока 222 заменяется на 1, после чего получается строка исходного вида (из одних единиц), но с длиной на 8 меньше исходной. Этот процесс будет повторятся и длина строки последовательно будет такой: 99, 91, 83, ... 11. Можно предположить, что строка окончательно примет длину 99 mod 8 = 3, но все немного сложнее. Дело в том, что строка длиной 11, т.е. 1111111111 будет последовательно преобразована к 211111111 2211111 22211 и после этого цикл закончится, поскольку подстроки 111 больше найдено не будет.
Ну, я попробую объяснить. Во-первых, нам нужно определиться в количестве строк в нашей таблице. Нужно 2 возвести в степень количества переменных. У нас это A, B и C (¬A не считается переменной, ибо ¬ — это операция наж переменной А), их 3 шт, следовательно нужно возвести 2 в 3-ю степень. 2^3=8, поэтому будет 8 строк. Сначала записываются в строку наши переменные A, B, C. Под первой записываем половину нолей подряд, половину единиц, под B четверть (половину предыдущей половины) нолей, четверть единиц, чередуя. Для C я думаю понятно, как. Дальше в логическом выражении нужно расставить действия, а для этого нужно знать приоритеты логических операций (как в математике сначала скобки, потом умножение и деление, а уж потом сложение и вычитание). Приоритеты можно "загуглить". Самым приоритетным является логич. отрицание (¬), т.е. сначала выполняется оно, а уж потом все другое. Но тут мы видим большое отрицание всей скобки, но мы не будем искать сначала его, ибо это отрицание содержимого скобки, которое нужно еще найти. Видим ¬А, пишем в таблицу. Смотрим на столбик А и в ¬А пишем все наоборот. Т.е. если в А стоит 0, то в ¬А будет 1 и наоборот. Ибо так работает отрицание. Дальше смотрим. Есть /\ (конъюнкция — логич. умножение) и ∨ (дизъюнкция — логич. сложение). Первым делом после отрицания выполняется умножение, а потом сложение. Записываем С /\ В. Это работает как обычное умножение. Допустим, в С стоит 0, а в В стоит 1, то С*В=0*1=0. Если 1 и 1, то 1 (единственный случай в умножении, где получается единица). Дальше прибавляем НЕ А к С /\ В. Логическое сложение действует как обычное: 1+1=1, 1+0=1, 0+1=1, 0+0=0. И теперь пришли к отрицанию скобки. Чтобы не писать длинную последнюю формулу, можно обозначить ее буквой F. И делаем отрицание нашего последнего выражения (¬А∨С /\ В).
Пока в строке имеется подстрока 111, выполняется цикл.
Подстрока 111 заменяется на 2 и это уменьшает длину строки на 2 символа.
Эта операция повторяется, пока не появится подстрока 222, что достигается за три прохода по циклу. При этом длина строки в целом сократится на 6.
Подстрока 222 заменяется на 1, после чего получается строка исходного вида (из одних единиц), но с длиной на 8 меньше исходной.
Этот процесс будет повторятся и длина строки последовательно будет такой:
99, 91, 83, ... 11. Можно предположить, что строка окончательно примет длину 99 mod 8 = 3, но все немного сложнее.
Дело в том, что строка длиной 11, т.е. 1111111111 будет последовательно преобразована к
211111111
2211111
22211
и после этого цикл закончится, поскольку подстроки 111 больше найдено не будет.
ответ: 22211
Во-первых, нам нужно определиться в количестве строк в нашей таблице. Нужно 2 возвести в степень количества переменных. У нас это A, B и C (¬A не считается переменной, ибо ¬ — это операция наж переменной А), их 3 шт, следовательно нужно возвести 2 в 3-ю степень. 2^3=8, поэтому будет 8 строк. Сначала записываются в строку наши переменные A, B, C. Под первой записываем половину нолей подряд, половину единиц, под B четверть (половину предыдущей половины) нолей, четверть единиц, чередуя. Для C я думаю понятно, как. Дальше в логическом выражении нужно расставить действия, а для этого нужно знать приоритеты логических операций (как в математике сначала скобки, потом умножение и деление, а уж потом сложение и вычитание). Приоритеты можно "загуглить". Самым приоритетным является логич. отрицание (¬), т.е. сначала выполняется оно, а уж потом все другое. Но тут мы видим большое отрицание всей скобки, но мы не будем искать сначала его, ибо это отрицание содержимого скобки, которое нужно еще найти. Видим ¬А, пишем в таблицу. Смотрим на столбик А и в ¬А пишем все наоборот. Т.е. если в А стоит 0, то в ¬А будет 1 и наоборот. Ибо так работает отрицание. Дальше смотрим. Есть /\ (конъюнкция — логич. умножение) и ∨ (дизъюнкция — логич. сложение). Первым делом после отрицания выполняется умножение, а потом сложение. Записываем С /\ В. Это работает как обычное умножение. Допустим, в С стоит 0, а в В стоит 1, то С*В=0*1=0. Если 1 и 1, то 1 (единственный случай в умножении, где получается единица). Дальше прибавляем НЕ А к С /\ В. Логическое сложение действует как обычное: 1+1=1, 1+0=1, 0+1=1, 0+0=0. И теперь пришли к отрицанию скобки. Чтобы не писать длинную последнюю формулу, можно обозначить ее буквой F. И делаем отрицание нашего последнего выражения (¬А∨С /\ В).