Будем наращивать длину последовательности от 0 знаков до N. Пусть после какого-то количества шагов у нас выписаны все последовательности длины А и мы хотим узнать количество подходящих последовательностей длины А+1. Распределим все последовательности на три группы(так как предыдущие символы нас не волнуют, то любые последовательности одной группы для нас равнозначны):
1) Заканчиваются на 0.
2) Ровно на одну единицу
3) Ровно на две единицы.
Из каждой последовательности группы 1 приписыванием нуля или единицы мы можем получить одну последовательность группы 1 и одну - группы 2. Неважно, какие именно, но они не перекрываются, т.к. предыдущие символы различны, хоть мы их и не учитываем. Точно так же из второй группы мы получаем одну последовательность группы 3 и одну группы 1, а из группы 3 - только группу 1. Таким образом, если количества последовательностей длины А по группам были (x, y, z), то для длины А+1 такое распределение будет (x+y+z, x, y). Если взять для длины 0 тройку (0, 0, 1) и просчитать тройки от 1 до N, получится искомое количество. Для a=1 и b=2 также работает правильно.
Відповідь:
Діаграма. Під діаграму відводиться вся область листа діаграми (якщо вона
розміщена на окремому листі) або область, обмежена кадром.
Маркери. Для відображення числових даних використовуються маркери. Як
маркери використовуються стовпчики, лінії, точки, смуги, сектори та долі.
Кожен набір маркерів, нанесених на діаграму, це набір значень, який
називається рядом даних.
Заголовок діаграми. Це текстовий фрагмент, який розміщується на діаграмі.
У діаграмі можливі підписи осей діаграми – це також текстові дані, які
розміщені біля осей, яку вони позначають.
Лінії сітки. Лінії сітки є продовженням поділок на вісі значень і вісі категорій.
Вісь. Це горизонтальна чи вертикальна лінія з поділками. Вісі присутні на усіх
діаграмах, крім кругової. Горизонтальна вісь Х – називається віссю категорій.
Вертикальна вісь У – називається віссю значень. При створенні об’ємних
діаграм додається ще одна вісь – вісь Z, вісь рядів.
Легенда. В легенді вказується тип заливки, яка використовується для маркерів на діаграмі. За кольором заливки йде ім’я ряду
Описание алгоритма:
Будем наращивать длину последовательности от 0 знаков до N. Пусть после какого-то количества шагов у нас выписаны все последовательности длины А и мы хотим узнать количество подходящих последовательностей длины А+1. Распределим все последовательности на три группы(так как предыдущие символы нас не волнуют, то любые последовательности одной группы для нас равнозначны):
1) Заканчиваются на 0.
2) Ровно на одну единицу
3) Ровно на две единицы.
Из каждой последовательности группы 1 приписыванием нуля или единицы мы можем получить одну последовательность группы 1 и одну - группы 2. Неважно, какие именно, но они не перекрываются, т.к. предыдущие символы различны, хоть мы их и не учитываем. Точно так же из второй группы мы получаем одну последовательность группы 3 и одну группы 1, а из группы 3 - только группу 1. Таким образом, если количества последовательностей длины А по группам были (x, y, z), то для длины А+1 такое распределение будет (x+y+z, x, y). Если взять для длины 0 тройку (0, 0, 1) и просчитать тройки от 1 до N, получится искомое количество. Для a=1 и b=2 также работает правильно.
Программа на Pascal:
var num00,num01,num11,mem00:integer;
a,i:byte;
begin
readln(b);
num00:=1;
for i:=1 to n do begin
mem00:=num11;
num11:=num01;
num01:=num00;
num00:=num01+num11+mem00;
end;
writeln(num11+num01+num00);
end.
Объяснение:
извени если ошебусь
:)