Назовите минимальное значение n для которого f n определено и больше 1000
Перейти к содержимому

Назовите минимальное значение n для которого f n определено и больше 1000

Помогите с информатикой

Нужен простой кода на питоне.
Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:

F(n) = n + F(n / 5 + 1), когда n > 5 и делится на 5,

F(n) = n + F(n + 6) , когда n > 5 и не делится на 5.

Назовите минимальное значение n, для которого F(n) > 1000.

def f (n):
if n<=5:
return n
if n%5==0:
return n+f(n//5+1)
if n%6!=0:
return n+f(n+6)
return 0

for n in range(1, 100000):
r = f(n)
if r >1000:
print(n, r)

Назовите минимальное значение n для которого f n определено и больше 1000

Ответ для 10_000_000 (в Python можно прямо писать числа с подчёркиваниями) хоть для 2, хоть для 3 будет получен менее чем за минуту.

Во-вторых, с миллиардом что Python, что C++ будут возиться не меньше нескольких минут. Решение «в лоб» с циклом неоптимально даже без вызовов рекурсивной функции, а для кэширования не хватит памяти. Надо придумывать что-то принципиально другое.
Посмотрите на двоичную запись нужных чисел:

С учётом особенностей числа 1_000_000_000 задачу можно решить так:

  • Страница 1 из 1
  • 1

Маркер СМИ

© 2007 — 2022 Сообщество учителей-предметников «Учительский портал»
Свидетельство о регистрации СМИ: Эл № ФС77-64383 выдано 31.12.2015 г. Роскомнадзором.
Территория распространения: Российская Федерация, зарубежные страны.
Учредитель / главный редактор: Никитенко Е.И.

Сайт является информационным посредником и предоставляет возможность пользователям размещать свои материалы на его страницах.
Публикуя материалы на сайте, пользователи берут на себя всю ответственность за содержание материалов и разрешение любых спорных вопросов с третьими лицами.
При этом администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта.
Если вы обнаружили, что на сайте незаконно используются материалы, сообщите администратору через форму обратной связи — материалы будут удалены.

Все материалы, размещенные на сайте, созданы пользователями сайта и представлены исключительно в ознакомительных целях. Использование материалов сайта возможно только с разрешения администрации портала.

Фотографии предоставлены

Назовите минимальное значение n для которого f n определено и больше 1000

Программа:

elif n > 18 and n % 3 == 0:

return (n // 3) * F(n // 3) + n — 12

return F(n — 1) + n * n + 5

for i in range(1, 801):

m = 0 # Обнуляем переменную проверки длины четных цифр в числе

for j in range(len(str(F(i)))): # Пробежимся по длине числа (От 0 до len(‘число’))

if int(str(F(i))[j]) % 2 == 0: # Проверяем каждую цифру числа на чётность

if m == len(str(F(i))): # Если значение переменной совпадает с длиной числа, то..

Ответ: 16

MrSolution

Ответ:

Объяснение:

В прикрепленных файлах приведено решение на python и pascal.

Ответом будет число 16.

Задание выполнено!

function F(n: integer): integer;

begin

if(n<=18) then F:= n+3

else if((n>18) and (n mod 3 = 0)) then F:= (n div 3)*F(n div 3)+n-12

else if((n>18) and (n mod 3 >0)) then F:= F(n-1)+n*n+5;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *