Задания
Версия для печати и копирования в MS Word
Тип 16 № 68249
i

Функ­ция F(n), где n  — не­от­ри­ца­тель­ное целое число, за­да­на сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(0)  =  0;

F(n)  =  F(n − 1) + 2n − 1, если n нечётно;

F(n)  =  4F(n / 2), если n чётно.

 

Из­вест­но, что F(a) − F(b)  =  1001. Най­ди­те наи­боль­шее воз­мож­ное зна­че­ние раз­но­сти a − b.

Спрятать решение

Ре­ше­ние.

Для при­ме­ра най­дем зна­че­ние F(5):

F левая круг­лая скоб­ка 5 пра­вая круг­лая скоб­ка = F левая круг­лая скоб­ка 4 пра­вая круг­лая скоб­ка плюс 9 = 4 умно­жить на F левая круг­лая скоб­ка 2 пра­вая круг­лая скоб­ка плюс 9 = 4 умно­жить на 4 умно­жить на F левая круг­лая скоб­ка 1 пра­вая круг­лая скоб­ка плюс 9 = 16 умно­жить на левая круг­лая скоб­ка F левая круг­лая скоб­ка 0 пра­вая круг­лая скоб­ка плюс 1 пра­вая круг­лая скоб­ка плюс 9 = 16 плюс 9 = 25.

Рас­смот­рим зна­че­ние F(1234):

F левая круг­лая скоб­ка 6 пра­вая круг­лая скоб­ка = 4 умно­жить на F левая круг­лая скоб­ка 3 пра­вая круг­лая скоб­ка = 4 умно­жить на левая круг­лая скоб­ка F левая круг­лая скоб­ка 2 пра­вая круг­лая скоб­ка плюс 5 пра­вая круг­лая скоб­ка = 4 умно­жить на F левая круг­лая скоб­ка 2 пра­вая круг­лая скоб­ка плюс 20 = 4 умно­жить на 4 умно­жить на F левая круг­лая скоб­ка 1 пра­вая круг­лая скоб­ка плюс 20 =
= 16 умно­жить на F левая круг­лая скоб­ка 1 пра­вая круг­лая скоб­ка плюс 20 = 16 умно­жить на левая круг­лая скоб­ка F левая круг­лая скоб­ка 0 пра­вая круг­лая скоб­ка плюс 1 пра­вая круг­лая скоб­ка плюс 20 = 16 плюс 20 = 36.

То есть ал­го­ритм счи­та­ет квад­рат числа. Со­ста­вим про­грам­му на языке Python для по­ис­ка от­ве­та.

 

При­ведём ре­ше­ние на языке Python.

otv = 0

for a in range(1000):

for b in range(1000):

if a**2 - b**2 == 1001:

otv = max(otv, a-b)

print(otv)

 

Ответ: 13.


Аналоги к заданию № 68249: 68278 Все