Разбор заданий №16 Цепочки символов ()

Download Report

Transcript Разбор заданий №16 Цепочки символов ()

Анализ алгоритма
построения
последовательности
В классических задачах (на символьные
цепочки) каких-либо особых знаний из курса
информатики, кроме умения логически
мыслить, не требуется.
Некоторый алгоритм из одной цепочки символов
получает новую цепочку следующим образом. Сначала
записывается исходная цепочка символов, после нее
записывается исходная цепочка символов в обратном
порядке, затем записывается буква, следующая в
русском алфавите за той буквой, которая в исходной
цепочке стояла на первом месте. Получившаяся
цепочка является результатом работы алгоритма.
Например, если исходная цепочка символов была ЛЕС,
то результатом работы алгоритма будет цепочка
ЛЕССЕЛМ.
• Дана цепочка символов ГО. Какая цепочка символов
получится, если к данной цепочке применить алгоритм
дважды (то есть к данной цепочке применить
алгоритм, а затем к результату его работы еще раз
применить алгоритм)?
Решение: 1-й раз ГООГД, 2-й раз ГООГД ДГООГД
Ответ: ГООГДДГООГД
Некоторый алгоритм из одной цепочки символов получает
новую цепочку следующим образом. Сначала
вычисляется длина исходной цепочки символов, и если
она нечетна, то к исходной цепочке символов слева
приписывается цифра 1. Затем символы попарно
меняются местами (первый – со вторым, третий – с
четвертым, пятый – с шестым и т.д). После этого справа
к полученной цепочке приписывается цифра 2.
Получившаяся таким образом цепочка является
результатом работы алгоритма. Например, если
исходной цепочкой была цепочка 5678, то результатом
работы алгоритма будет цепочка 65872, а если исходной
цепочкой была 987, то результатом работы алгоритма
будет цепочка 91782.
• Дана цепочка символов 753. Какая цепочка символов
получится, если к данной цепочке применить
описанный алгоритм дважды (то есть применить
алгоритм к данной цепочке, а затем к результату вновь
применить алгоритм)?
Ответ: 7131252
Некоторый алгоритм из одного числа поучает
новое число следующим образом. Сначала
дважды записывается одно число, а затем в
конец числа приписывается количество
нечетных цифр в новом числе. Получившееся
число является результатом работы алгоритма.
Например, если исходное число было 325, то
результатом работы алгоритма будет число
3253254.
• Дано число 1. Примените алгоритм три раза (т.е.
исполните алгоритм для исходного числа, а
затем к результату его работы еще раз
примените алгоритм и т.д.). Какая цифра в
результате окажется в разряде единиц?
Решение: 112, затем 1121124, 112112411211248
Ответ: 8
В начальный момент в строке записана цифра 0 (ноль).
На каждом из последующих 9 шагов выполняется следующая операция: в
очередную строку записывается удвоенная предыдущая строка, а в конец
строки приписывается очередная цифра (на i-м шаге приписывается цифра i).
Для удобства в скобках пишется номер строки (начиная с 0). Ниже показаны
первые строки, сформированные по описанному правилу:
(0) 0
(1) 001
(2) 0010012
(3) 001001200100123
..........................................
Задания:
1. На какие 10 цифр заканчивается последняя строка?
2. Сколько раз в последней строке встречается цифра 5?
3. Какова длина последней строки (то есть сколько всего в ней цифр)?
4. Какая цифра стоит в последней строке на 1012-м месте?
5. Сколько всего цифр в строках (0) - (9)?
Ответы:
1. Последняя строка заканчивается цифрами 0123456789.
2. В последней строке цифра 5 встретится 16 раз.
3. В последней строке 1023 цифры.
4. В последней строке на 1012-м месте стоит цифра 1.
5. Всего в строках (0) - (9) 2036 цифр
Для составления цепочек разрешается использовать 5
бусинок, помеченных буквами А Б Е Ж И. Каждая
цепочка должна состоять из k бусинок, где k
€{3,4,5} - зависит от номера Варианта; при этом
должны соблюдаться правила:
1) любая цепочка начинается буквой А
2) после гласной буквы не может снова идти гласная, а
после согласной - согласная.
3) буквы в цепочке не должны повторяться
Задание: для заданного k выписать все допустимые
цепочки.
Ответ:
(при k=3) АБЕ АБИ АЖЕ АЖИ
(при k=4) АБЕЖ АБИЖ АЖЕБ АЖИБ
(при k=5) АБЕЖИ АБИЖЕ АЖЕБИ АЖИБЕ
Цепочка из трех бусин, помеченных
латинскими буквами, формируется по
следующему правилу.
• В конце цепочки стоит одна из бусин A, B, C.
• На первом месте - одна из бусин С, D, E,
которой нет в середине.
• А в середине - одна из бусин A, B, E, D, не
стоящая на третьем месте.
Какая из перечисленных цепочек создана по
этому правилу?
1) ABA 2) CCС
3)DAC
4) CDE
Ответ: 3
Задача №1.
Строки (цепочки символов латинских букв) создаются по
следующему правилу. Первая строка состоит из одного
символа – латинской буквы «А». Каждая из последующих
цепочек создается такими действиями: в очередную строку
сначала записывается буква, чей порядковый номер в
алфавите соответствует номеру строки (на i-м шаге
пишется «i»-я буква алфавита), к ней справа дважды подряд
приписывается предыдущая строка. Вот первые 4 строки,
созданные по этому правилу:
(1) A
(2) BAA
(3) CBAABAA
(4) DCBAABAACBAABAA
Латинский алфавит (для справки):
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Запишите семь символов подряд, стоящие в восьмой строке со
126-го по 132-е место (считая слева направо).
Решение
1)используя приведенное правило, можно
построить следующие строки:
(5) EDCBAABAACBAABAADCBAABAACBAABAA
(6)FEDCBAABAACBAABAADCBAABAACBAABAAEDCBA
ABAACBAABAADCBAA BAACBAABAA
2) мы быстро убедимся, что следующие
строки получаются достаточно длинные, и
легко запутаться, отсчитывая символы с
номерами 126-132 в восьмой строке
3) попробуем найти закономерности,
позволяющие решить задачу без
выписывания 8-ой строки;
4)
прежде всего, заметим, что длины
первых строк 1, 3, 7, 15, … – это числа вида
2i-1, где i – номер строки; таким образом,
длина 7-ой строки – 127, а длина восьмой –
255 символов
5) восьмая строка строится так: восьмая
буква латинского алфавита (H) и затем – два
раза седьмая строка (сверху написаны
номера символов)
1
Н
2
GFEDC…
128 129
...AABAA GFEDC…….
255
…AABAA
6) символы 126-132 находятся на границе двух
цепочек, повторяющих 7-ую строку;
заметим, что в соответствии с заданным
алгоритмом можно легко определить
первые символы в 7-ой строке (GFEDC) и
последние символы (AABAA)
7) далее сразу находим, что интересующая
нас часть 8-ой строки имеет вид
126
127
128
129
130
131
132
B
A
A
G
F
E
D
Ответ: BAAGFED
Сколько в восьмой строке букв, отличных от
буквы «B»?
Решение:
- сначала посчитаем, сколько всего символом будет в 8-й
строке. Для того чтобы найти число символов в n-й
строке, нужно усмотреть закономерность в уже
имеющихся строках. Длины строк у нас: 1, 3, 7, 15 – это
числа вида 2N – 1, где N – номер строки. Значит, длина
8-й строки будет равна 28 – 1 = 255;
- теперь аналогично посчитаем, сколько букв «B» будет в
8-й строке. В данных строках количество букв «B»: 0, 1,
2, 4 – это числа вида 2N-2, где N – номер строки. Тогда в
8-й строки будет 28-2 = 64 буквы «B»;
- если в 8-й строке 255 букв, из них 64 – буквы «B», то букв,
отличных от «B» будет 255 – 64 = 191.
Ответ: 191.
Возможные ловушки и проблемы:
• можно, конечно, попробовать выписать заданную строку
и выделить нужные символы, но этот подход очень
трудоемкий и чреват случайными ошибками
• чаще всего заданная цепочка находится на границе, где
соединяются две части строки (например, в этом задании –
на границе двух последовательностей, совпадающих с 7-ой
строкой)
•
в задачах этого типа часто встречается игра на
последовательностях вида
2k: 1, 2, 4, 8, 16, …
2k-1: 1, 3, 7, 15, 31, …
• полезно помнить формулу, которая «сворачивает» сумму
степеней двойки:
1 + 2 + 4 + 8 + … + 2k = 2k+1 - 1
• (для доказательства используйте тот факт, что двоичное
число, состоящее только из единиц, имеет вид 2n-1)
Загадка:
Ты берешь в долг у мамы 25 рублей, и у папы 25,
всего у тебя 50 рублей.
Идешь в магазин и тратишь там ровно 45руб.
По дороге домой ты даешь в долг подружке 3
рубля (ей не хватало на что то).
У тебя остается 2 рубля.
Ты приходишь домой, отдаешь долг маме- рубль
и папе - рубль.
Теперь ты должна им по 24руб.
Итог: 24 + 24 равно 48 и 3 рубля тебе отдает
подружка получается 51.
Вопрос - откуда взялся рубль если у тебя было
50???