Линейные рекуррентные соотношения первого порядка с переменным коэффициентом. к числу, первоначально равному нулю, прибавляется шаг за шагом по единице до получения значения , . докажите, что при этом потребуется переносов единицы в старший разряд.
Для доказательства можно использовать индукцию. Но формулу 2^n - n - 1 можно вывести, исходя лишь из условия задачи. Обозначим через S(n) исследуемое количество переносов и заметим, что если прибавлением единиц уже получено число 2^n-1 - 1 (на это потребуется S(n-l) переносов), то очередное прибавление единицы потребует n - 1 переносов и приведет к числу 2^n-1, двоичная запись которого есть 10...0 (количество нулей после единицы равно n-1).
Далее в процессе достижения числа 11...1 (n единиц) потребуется еще S(n-l) переносов. Получаем рекуррентное уравнение S(n) = 2S(n - 1) + n - 1 или
S(n)-2S(n-l) = n-l, (1)
при этом s(0) = 0.
Характеристическое уравнение, соответствующее рекуррентному уравнению (1), имеет вид А - 2 = 0. Общее решение однородного уравнения S(n) - 2S(n - 1) = 0 есть сТ. Правую часть уравнения (1) можно записать в виде квазиполинома (n-1)*n. Значение 1 не является корнем характеристического уравнения, поэтому (ур. 1) обладает частным решением вида an + X; подставляя это выражение вместо s(n) в (1), получаем an + X - 2(а(n - 1) + X) = n - 1, и, приравнивая в левой и правой частях коэффициенты при первой и нулевой степенях n, имеем а = X = -1. Получаем общее решение уравнения (1): S(n) = C2^n- n- 1. Подбираем значение константы стак, чтобы выполнялось S(0) = 0; для этого должно выполняться C •2 - 2 = 0, т. е. C= 1. Итак, потребуется 2^n- n- 1 переносов единиц в старшие разряды.
Но формулу 2^n - n - 1 можно вывести, исходя лишь из условия задачи. Обозначим через S(n) исследуемое количество переносов и заметим, что если прибавлением единиц уже получено число 2^n-1 - 1 (на это потребуется S(n-l) переносов), то очередное прибавление единицы потребует n - 1 переносов и приведет к числу 2^n-1, двоичная запись которого есть 10...0 (количество нулей после единицы равно n-1).
Далее в процессе достижения числа 11...1 (n единиц) потребуется еще S(n-l) переносов. Получаем рекуррентное уравнение S(n) = 2S(n - 1) + n - 1 или
S(n)-2S(n-l) = n-l, (1)
при этом s(0) = 0.
Характеристическое уравнение, соответствующее рекуррентному уравнению (1), имеет вид А - 2 = 0. Общее решение однородного уравнения S(n) - 2S(n - 1) = 0 есть сТ.
Правую часть уравнения (1) можно записать в виде квазиполинома (n-1)*n. Значение 1 не является корнем характеристического уравнения, поэтому (ур. 1) обладает частным решением вида an + X; подставляя это выражение вместо s(n) в (1), получаем an + X - 2(а(n - 1) + X) = n - 1, и, приравнивая в левой и правой частях коэффициенты при первой и нулевой степенях n, имеем а = X = -1. Получаем общее решение уравнения (1): S(n) = C2^n- n- 1. Подбираем значение константы стак, чтобы выполнялось S(0) = 0; для этого должно выполняться C •2 - 2 = 0, т. е. C= 1. Итак, потребуется 2^n- n- 1 переносов единиц в старшие разряды.