Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/64: Рейтинг темы: голосов - 64, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 17.01.2023
Сообщений: 43

Алгоритм вычисления функции F(n)

02.03.2023, 19:49. Показов 16453. Ответов 6

Студворк — интернет-сервис помощи студентам
Алгоритм вычисления функции F(n), где целое число, задан следующими соотношениями:

F(n) = n, при п≥ 10 000,
F(n) = n / 4 + F(n / 4 + 2), когда n < 10 000 и делится на 4,
F(n) = 1 + F(n + 2), когда n < 10 000 и не делится на 4.

Определите значение F(174) - F(3)
Ответ: 67

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys
from functools import lru_cache
 
sys.setrecursionlimit(5000)
 
@lru_cache(None)
def f(n):
    if n >= 10000:
        return n
    if n < 10000 and n % 4 == 0:
        return n // 4 + f(n // 4 + 2)
    if n < 10000 and n % 4 != 0:
        return 1 + f(n + 2)
 
for i in range(10000, -10000, -1):
    f(i)
 
print(f(174) - f(3))
Помогите пожалуйста решить задачу. Все перепробовал, ответ так и не выходит. За ранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2023, 19:49
Ответы с готовыми решениями:

Алгоритм вычисления значения функции
Алгоритм вычисления значения функции F(n), где n— целое неотрицательное число, задан следующими соотношениями: F(0)=0; F(n)=F(n–1)+1,...

Алгоритм вычисления значения функции F(n)
import sys sys.setrecursionlimit(50000) def f(n): if n &gt; 10000: return n - 10000 if 1 &lt;= 1 &lt;= 10000: return f(n + 1) + f(n...

Алгоритм вычисления значения функции f(n)
Задача. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следую- щими соотношениями: F(n) = n, если n ≥ 10...

6
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
02.03.2023, 20:00
Лучший ответ Сообщение было отмечено Ternylli как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from functools import cache
 
@cache
def f(n):
    if n >= 10000:
        return n
    if n % 4 == 0:
        return n // 4 + f(n // 4 + 2)
    return 1 + f(n + 2)
 
 
for i in range(10000, 0, -1):
    try:
        f(i)
    except:
        pass
 
print(f(174) - f(3))
4
1 / 1 / 0
Регистрация: 17.01.2023
Сообщений: 43
02.03.2023, 20:04  [ТС]
Спасибо вам огромное, я так долго мучался, а нужно всего лишь было использовать try except..
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
03.03.2023, 00:15
Цитата Сообщение от Ternylli Посмотреть сообщение
а нужно всего лишь было использовать try except..
В юпитере try except не помогает - dead kernel. Но можно предрасчитать по нечетным значениям:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from functools import cache
 
@cache
def f(n):
    if n >= 10000:
        return n
    if n % 4 == 0:
        return n // 4 + f(n // 4 + 2)
    return 1 + f(n + 2)
 
for i in range(10001, 0, -2):
    f(i)
    
 
print(f(174) - f(3))
6
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
03.03.2023, 06:50
Лучший ответ Сообщение было отмечено Red white socks как решение

Решение

Цитата Сообщение от Red white socks Посмотреть сообщение
Но можно предрасчитать по нечетным значениям
для этого же нужно понимать, что внутри функции происходит...
0
1 / 1 / 0
Регистрация: 17.01.2023
Сообщений: 43
03.03.2023, 07:56  [ТС]
Цитата Сообщение от Red white socks Посмотреть сообщение
В юпитере try except не помогает - dead kernel. Но можно предрасчитать по нечетным значениям:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from functools import cache
 
@cache
def f(n):
    if n >= 10000:
        return n
    if n % 4 == 0:
        return n // 4 + f(n // 4 + 2)
    return 1 + f(n + 2)
 
for i in range(10001, 0, -2):
    f(i)
    
 
print(f(174) - f(3))
Это, конечно, тоже отличный способ, но нужно разбирать функцию и понимать, что там происходит. А вдруг не так поймёшь, ещё ошибочный ответ получишь. Проще, лично для меня, через try/except. Но все равно спасибо большое вам)

Добавлено через 1 минуту
Цитата Сообщение от Red white socks Посмотреть сообщение
В юпитере try except не помогает - dead kernel. Но можно предрасчитать по нечетным значениям:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from functools import cache
 
@cache
def f(n):
    if n >= 10000:
        return n
    if n % 4 == 0:
        return n // 4 + f(n // 4 + 2)
    return 1 + f(n + 2)
 
for i in range(10001, 0, -2):
    f(i)
    
 
print(f(174) - f(3))
А что такое "юпитер"? Уточните пожалуйста
Надеюсь, я с таким не столкнусь на ЕГЭ
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
04.03.2023, 22:56
Цитата Сообщение от Ternylli Посмотреть сообщение
вдруг не так поймёшь, ещё ошибочный ответ получишь.
Обычно работает в другую сторону: больше понимания - меньше ошибок, но тут как вам удобнее.
Цитата Сообщение от Ternylli Посмотреть сообщение
А что такое "юпитер"? Уточните пожалуйста
Надеюсь, я с таким не столкнусь на ЕГЭ
Если вкратце, то интерактивная среда для вычислений на питоне с веб-интерфейсом. Больше даст гугл по слову jupyter
Уверен, что кирпичом на голову не упадет

Добавлено через 3 минуты
Цитата Сообщение от eaa Посмотреть сообщение
для этого же нужно понимать, что внутри функции происходит...
Ума не приложу, как вы это делаете
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2023, 22:56
Помогаю со студенческими работами здесь

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

Задача на алгоритм вычисления значения функции
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n, при n ≤ 3 при n &gt; 3:...

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

Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями
Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями: F(1) = 1; F(2) = 2; F(3) = 3; ...

Алгоритм вычисления функции F(n) задан следующими соотношениями
F(n)=3 при n=1 F(n)=2*F(n-1)-n+1,если n&gt;1 чему равно значение ф-ии F(21)-?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru