Домашние задания: Алгебра

Помогите решить задачу по алгебре, пожалуйста.

Пусть дана такая последовательность натуральных чисел — a_1, a_2, a_3, что a_1 = 1 и, для n > 1 выполняются соотношения:

a_2n = 2*a_2n, при чётных n
a_2n = 2*a_2n + 1, при нечётных n

a_(2n+1) = 2*a_(2n+1) + 1, при чётных n
a_(2n+1) = 2*a_(2n+1), при нечётных n

Докажите, что последовательность принимает каждое натуральное значение ровно один раз.
Пусть b1,...,bk - цифры двоичного кода числа n, тогда рассмотри a_n такую, у которой двоичный код состоит из цифр b1, b1+b2, b2+b3,...,b(k-1)+b(k). Покажи индукцией по k, что она удовл-ет всем равенствам в условии (рассмотри 4 случая с точки зрения последних двух цифр двоичного кода). Биекция, надеюсь, очевидна.
Геннадий Похил
Геннадий Похил
14 671
Лучший ответ
Докажем утверждение методом математической индукции.

Базис индукции: a_1 = 1. Последовательность принимает значение 1.

Предположение индукции: для всех k ≤ n последовательность принимает каждое натуральное значение ровно один раз.

Индукционный переход:

Для четных n + 1:

a_(2(n+1)) = 2a_(2(n+1)/2) = 2a_(n+1)
a_(2(n+1)+1) = 2a_(2(n+1)+1)/2 + 1 = 2a_(n+1) + 1

Таким образом, значение a_(n+1) получается из двух разных значений a_n, одно из которых четное, а другое - нечетное. По предположению индукции, все значения a_k, k ≤ n принимаются ровно один раз. Значит, значение a_(n+1) тоже принимается ровно один раз.

Для нечетных n + 1:

a_(2(n+1)) = 2a_(2(n+1)/2) = 2a_(n+1)
a_(2(n+1)+1) = 2a_(2(n+1)+1)/2 + 1 = 2a_(n+1) + 1

Аналогично, значение a_(n+1) получается из двух разных значений a_n, одно из которых четное, а другое - нечетное. По предположению индукции, все значения a_k, k ≤ n принимаются ровно один раз. Значит, значение a_(n+1) тоже принимается ровно один раз.

Таким образом, по принципу математической индукции, утверждение доказано: последовательность принимает каждое натуральное значение ровно один раз.
Алексей Лыков
Алексей Лыков
25 526