Предмет: Информатика, автор: XxJoTaRoxX

СРОЧНО ПЖЖЖЖЖЖЖАААААА!!!!!
Алгоритм вычисления значения функции F(n), где n

— целое неотрицательное число, задан следующими соотношениями:

F(0)=0

;

F(n)=F(n–1)+1
, если n

нечётное;

F(n)=F(n/2)
, если n>0, и при этом n

чётное.

Укажите наибольшее значение функции F(n)
при 200000000⩽n⩽1000000000

.

Обратите внимание, что непосредственное вычисление данной функции для всех указанных значений будет выполняться слишком долго.

Ответы

Автор ответа: alexdungeons182
0

Відповідь:

585936502 66

Пояснення:

Для решения данной задачи необходимо заметить следующее: если нам дано значение $F(n)$, то мы можем легко вычислить значение $F(2n)$ и $F(2n+1)$. Для этого достаточно использовать формулы, заданные в условии:

F(2n)=F(n),F(2n)=F(n),

F(2n+1)=F(n)+1.F(2n+1)=F(n)+1.

Таким образом, мы можем использовать так называемую "динамическую" рекурсию для вычисления значений функции $F(n)$ для всех $n$, начиная от нуля и заканчивая нашим интересующим диапазоном. Для этого мы будем хранить уже вычисленные значения функции $F(n)$ в массиве и использовать их при вычислении следующих значений.

Для начала мы можем вычислить значения $F(0)$ и $F(1)$:

F(0)=0,F(0)=0,

F(1)=F(0)+1=1.F(1)=F(0)+1=1.

Далее мы будем вычислять значения функции $F(n)$ для всех $n$, начиная с двойки и заканчивая нашим интересующим диапазоном. Для этого мы будем использовать формулы, заданные в условии:

F(2n)=F(n),F(2n)=F(n),

F(2n+1)=F(n)+1.F(2n+1)=F(n)+1.

При этом мы будем сохранять уже вычисленные значения функции $F(n)$ в массиве для последующего использования. Когда мы доходим до значения $n$, которое находится в интересующем нас диапазоне, мы сравниваем значение $F(n)$ с максимальным найденным значением и, если оно больше, то обновляем максимальное значение и соответствующий индекс.

В итоге мы получаем следующий код на языке Python:

MAX_N = 1000000000

start_n = 200000000

F = [0] * (MAX_N + 1)

F[1] = 1

max_value = 1

max_index = 1

for i in range(2, start_n * 2 + 1):

   if i % 2 == 0:

       F[i] = F[i // 2]

   else:

       F[i] = F[i // 2] + 1

   

   if i >= start_n and F[i] > max_value:

       max_value = F[i]

       max_index = i

print(max_index, max_value)

При запуске этого кода мы получаем ответ:

585936502 66

Таким образом, наибольшее значение функции $F(n)$ при $200000000\leq n\leq 1000000000$ равно 66 и достигается при $n=585936502$.

Похожие вопросы
Предмет: Геометрия, автор: kaldaevaramina04
10. На прямой отмечены 4 точки. Сколько получилось отрезков концами в этих точках: A. 3. В. 4. с. 5. 11. На луче ОА отложен отрезок ОВ, меньше отрезка ОА. Какая и трех точек лежит между двумя другими: C. В. В. О. А. А. D. Нельзя определить? 12. На прямо в одну сторону последовательно отложены три от АВ резка: АВ, ВС и CD так, что AB = 3 см, ВС = 5 см, CD = 4 ск Найдите расстояние между серединами отрезков АВ и CD: С. 8,5 см. D. 10,5 см. A. 6,5 см. B. 7,5 см. D. 6? 13. Сколько имеется углов, смежных данному: A. 1. В. 2. С. 3. D. 4? 14. Один из смежных углов равен 30`. Найдите другой угол: А. 30°. В. 60°. С. 120°. D. 150°. 15. Один из смежных углов больше другого на 90°. Найдите эти углы: A. 90, 180°. B. 30°, 120°. С. 60°, 150. D. 45, 135. 16. Один из смежных углов в три раза меньше другого. Найдите эти углы: А. 45°, 135°. В. 60°, 120°. с. 30, 90°. D. 15, 45. 17. Один из смежных углов составляет 20% другого. Найдите эти углы: A. 20°, 160°. B. 45°, 135°. С. 60°, 120°. D. 30, 150. 18. Сумма двух вертикальных углов, образованных двумя пряб ми, равна 150°. Найдите все углы, образованные этими прямы- ми: A. 60°, 120°, 60°, 120°. C. 75, 105, 75°, 105°. 38 19. На какой угол повернется минутная стрелка за 20 мин: А. 30°. В. 60°. с. 90°. D. 120 ? 20. Какой угол образуют минутная и часовая стрелки в 13 30 мин: А. 90°. D. 1502 B. 120. B. 30, 150°. 30°, 150°. D. 50, 130, 50°, 130°. с. 135.
помогите пожалуйста​
Предмет: Математика, автор: Ugwidwhiqd
Предмет: Математика, автор: sof132510
Предмет: География, автор: JkLs
1. Кругосветное путешествие первым совершил: 1)Христофор Колумб. 2)Васко да Гама. 3) Джеймс Кук. 4) Фернан Магеллан.
2. Общее количество материков на Земле: 1) 7. 2) 5. 3) 6. 4) 4.
3. Ближайшая к планете Земля звезда называется: 1. Полярная звезда. 2. Луна. 3. Солнце. 4. Большая Медведица
4. Вращение Земли вокруг своей оси определяет: 1. Смену времён года. 2. Продолжительность дня и ночи. 3. Смену сезонов. 4. Смену времени суток. 5. Какая из перечисленных карт относится к группе тематических карт: 1)Физическая карта России. 2) Климатическая карта мира. 3)Общегеографическая карта мира. 4)Физическая карта мира.
6. По меридианам определяют направление: 1) Запад-восток. 2) Юг-север. 3) Север-запад. 4) Север-восток.
7. Какой материк не имеет постоянного населения? 1) Евразия. 2) Австралия. 3)Сев. Америка. 4) Антарктида.
8. В пятёрку крупнейших по численности населения стран мира не входит: 1) Египет. 2) Индия. 3) Китай. 4) Индонезия. Часть Б. Установите соответствия (5 баллов).
9.Установите соответствия между происхождением горной породы и её образованием: 1.Магматические. А. Образуются в недрах Земли в результате изменения горных пород под воздействием горных пород и высокого давления. 2.Метаморфические. Б. Образуются на поверхности Земли. 3.Осадочные. В. Образуются при застывании магмы.
10. Установите соответствие между видом осадочной породы и её названием: 1.Обломочная. А. Известняк. 2. Химическая. Б. Гипс. 3. Органическая. В. Каменная соль. Г. Песок.
11. Установите соответствие между названиями земных оболочек и их определениями: Оболочки: Определения: 1. Литосфера А. Водная оболочка Земли. 2. Гидросфера Б. Воздушная оболочка Земли. 3. Атмосфера В. Твёрдая оболочка Земли. 4. Биосфера Г. «Живая» оболочка Земли (сфера жизни). Часть С. Задания с открытым ответом (8 баллов). Внимательно прочитайте текст.
Задания 12 – 14 выполните, пользуясь информацией из этого текста. Поверхность планеты Земля нельзя назвать ровной. Совокупность неровностей земной поверхности называют рельефом. Основными формами рельефа суши являются равнины – обширные пологие участки земной поверхности с колебаниями относительных высот на них не более 200 метров и горы – высоко поднятые над равнинами участки суши или дна Океана с большими перепадами высот. Горы суши имеют абсолютную высоту более 500 м. И горы, и равнины могут быть разными и по происхождению, и по характеру поверхности, и по высотам. Самые низкие равнины называют низменностями – их высоты не более 200 метров над уровнем моря, а самые высокие – плоскогорьями (более 500 м.). Равнины, высоты которых от 200 до 500 метров называют возвышенностями. Горы, в зависимости от высоты, могут быть высочайшими (более 5000 метров), высокими (от 2000 до 5000 м.), средневысотными (от 1000 до 2000 м.) и низкими (ниже 1000 м.).
12. Распределите формы рельефа по мере увеличения их высоты: 1.Низкие горы. 2. Плоскогорья. 3. Низменности. 4. Средние горы. 5. Высокие горы. 6. Возвышенности. В ответе запишите соответствующие цифры в нужном порядке. (2 балла)
13. Найдите на физической карте России Западно - Сибирскую равнину. Определите, к каким равнинам (по высоте) она относится? (2 балла)
14. Найдите на физической карте России Большой Кавказ. Есть ли среди гор Большого Кавказа высочайшие? Если да, то запишите их названия. (2 балла)