Будем наращивать длину последовательности от 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, получится искомое количество. Для N=1 и N=2 также работает правильно.
Абак - счётные доски для вычислений в Древней Греции, Древнем Риме, Древнем Китае и т.д.
Арифмометр - настольная или портативная механическая вычислительная машина.
Перфокарта - носитель информации. Тонкий картон с отверстиями или без них в определённых местах.
Транзистор - полупроводниковое устройство, которое используется для усиления, генерации и преобразования электрических сигналов. Транзисторы заменили вакуумные лампы в большинстве электронных устройств, свершив революцию в создании интегральных схем и компьютеров.
ЭНИАК – первая электронная вычислительная машина.
Бэббидж Чарлз - изобретатель первой аналитической вычислительной машины.
Лавлейс Ада - написала первые программы для аналитической вычислительной машины Беббиджа.
Лейбниц - предложил двоичную систему счисления, автор первой механической счётной машины производившей сложение, вычитание, умножение и деление чисел.
Возняк Стив - один из основателей компании Apple. Разработал первый массовый домашний компьютер и первый массовый персональный компьютер.
Холлерит Герман - создатель электрической статистической табулирующей системы (оборудования для работы с перфокартами).
Непер Джон - изобретатель логарифмов, для их вычисления он предложил устройство под названием «палочки Непера».
Шиккард Вильгельм - придумал «Считающие часы», первый арифмометр, умевший выполнять четыре арифметических действия.
Паскаль Блез - автор первой механической счётной машины, выполнявшей сложение и вычитание чисел. (Паскаль - один из наиболее известных языков программирования.)
Лебедева Сергей - под его руководством была создана МЭСМ (малая электронная счётная машина).
Описание алгоритма:
Будем наращивать длину последовательности от 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, получится искомое количество. Для N=1 и N=2 также работает правильно.
Программа на Pascal:
var num00,num01,num11,mem00:integer;
n,i:byte;
begin
readln(n);
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.
Смотри картинку
Объяснение:
Крестик - начало слова, стрелка - конец.
Абак - счётные доски для вычислений в Древней Греции, Древнем Риме, Древнем Китае и т.д.
Арифмометр - настольная или портативная механическая вычислительная машина.
Перфокарта - носитель информации. Тонкий картон с отверстиями или без них в определённых местах.
Транзистор - полупроводниковое устройство, которое используется для усиления, генерации и преобразования электрических сигналов. Транзисторы заменили вакуумные лампы в большинстве электронных устройств, свершив революцию в создании интегральных схем и компьютеров.
ЭНИАК – первая электронная вычислительная машина.
Бэббидж Чарлз - изобретатель первой аналитической вычислительной машины.
Лавлейс Ада - написала первые программы для аналитической вычислительной машины Беббиджа.
Лейбниц - предложил двоичную систему счисления, автор первой механической счётной машины производившей сложение, вычитание, умножение и деление чисел.
Возняк Стив - один из основателей компании Apple. Разработал первый массовый домашний компьютер и первый массовый персональный компьютер.
Холлерит Герман - создатель электрической статистической табулирующей системы (оборудования для работы с перфокартами).
Непер Джон - изобретатель логарифмов, для их вычисления он предложил устройство под названием «палочки Непера».
Шиккард Вильгельм - придумал «Считающие часы», первый арифмометр, умевший выполнять четыре арифметических действия.
Паскаль Блез - автор первой механической счётной машины, выполнявшей сложение и вычитание чисел. (Паскаль - один из наиболее известных языков программирования.)
Лебедева Сергей - под его руководством была создана МЭСМ (малая электронная счётная машина).