#kege #yandex
#reshu #statgrad
#polyakov
#ЕГЭ1 #ЕГЭ10 #ЕГЭ19
#ЕГЭ2 #ЕГЭ11 #ЕГЭ20
#ЕГЭ3 #ЕГЭ12 #ЕГЭ21
#ЕГЭ4 #ЕГЭ13 #ЕГЭ22
#ЕГЭ5 #ЕГЭ14 #ЕГЭ23
#ЕГЭ6 #ЕГЭ15 #ЕГЭ24
#ЕГЭ7 #ЕГЭ16 #ЕГЭ25
#ЕГЭ8 #ЕГЭ17 #ЕГЭ26
#ЕГЭ9 #ЕГЭ18 #ЕГЭ27
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
from functools import *
@lru_cache(None)
def f(n):
if n < 3:
return 2
if n > 2 and n % 2 == 0:
return 2 * f(n-2) - f(n-1) + 2
if n > 2 and n % 2 != 0:
return 2 * f(n-1) + f(n-2) - 2
print(f(170))
В следующем посте добавлю пару слов про функцию
@lru_cache()
с аргументом None
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: М. Паршиков
Уровень: Средний
Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(n) = n, при n ≥ 3000
F(n) = n + x + F(n+2), при n < 3000
При каком целом значении х, значение выражения:
F(2984)−F(2988)=5916
def F(n):
if n >= 3000:
return n
if n < 3000:
return n + x + F(n+2)
for x in range(-1000, 1000):
if F(2984) - F(2988) == 5916:
print(x)
# Ответ: -27
def F(n):
Объявление функции F с аргументом n.
if n >= 3000:
Проверка условия: если n больше или равно 3000.
return n
Возвращение значения n, если условие из пункта 2 выполняется.
if n < 3000:
Проверка условия: если n меньше 3000.
return n + x + F(n+2)
Возвращение значения n + x + F(n+2), если условие из пункта 4 выполняется. Рекурсивный вызов функции F.
for x in range(-1000, 1000):
Цикл for, который перебирает значения от -1000 до 999 включительно и присваивает каждое значение переменной x.
if F(2984) - F(2988) == 5916:
Проверка условия: если разность F(2984) и F(2988) равна 5916.
print(x)
Вывод значения x, если условие из пункта 7 выполняется.
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: М. Шагитов
Уровень: Средний
Найдите последние семь цифр суммы F(2020) + F(2200).
Аудио с пояснением к коду решения оставлю в комментариях.
from functools import *
@lru_cache(None)
def F(n):
if n < 2025:
return n**2
if 2025 <= n < 2050:
return 2 * F(n-1) - F(n-2) + n
if 2050 <= n <= 2100:
return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
if n > 2100:
return 2 * F(n-1) + F(n-2) + n
print(str(F(2020) + F(2200))[-7:])
Ответ: 5098903
from functools import *
Импорт всех функций из модуля functools.
@lru_cache(None)
Декоратор, который кэширует результаты выполнения функции F, чтобы избежать повторных вычислений.
def F(n):
Определение функции F с одним параметром n.
if n < 2025:
Проверка условия: если n меньше 2025.
return n**2
Возврат квадрата числа n, если условие из пункта 4 истинно.
if 2025 <= n < 2050:
Проверка условия: если n больше либо равно 2025 и меньше 2050.
return 2 * F(n-1) - F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 6 истинно.
if 2050 <= n <= 2100:
Проверка условия: если n от 2050 до 2100 включительно.
return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
Возврат значения, вычисленного по формуле, если условие из пункта 8 истинно.
if n > 2100:
Проверка условия: если n больше 2100.
return 2 * F(n-1) + F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 10 истинно.
print(str(F(2020) + F(2200))[-7:])
Вызов функции F с аргументами 2020 и 2200, вычисление их суммы, преобразование в строку, взятие последних семи символов и вывод результата.
Информатика ЕГЭ | itpy
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Поставь
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)
print(F(2024) - F(2020))
from sys import *
setrecursionlimit(10000)
from functools import *
@lru_cache(None)
Информатика ЕГЭ | itpy
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: Основная волна 08.06.24
Уровень: Базовый
Алгоритм вычисления значения функции
F(n), где n – натуральное число, задан следующими соотношениями:
F(n)=1 при n=1;
F(n)=2×n×F(n–1), если n>1.
Чему равно значение выражения (F(2024)/16−F(2023))/F(2022)?
В этом номере на ЕГЭ 2024 попадалась ошибка: "OverflowError: integer division result too large for a float", исправить её можно было заменой действий "/" на "//".
import sys
sys.setrecursionlimit(10000)
def F(n):
if n == 1:
return 1
if n > 1:
return 2 * n * F(n-1)
print((F(2024) // 16 - F(2023)) / F(2022))
# Ответ: 1019592
import sys
Импорт модуля sys, который обеспечивает доступ к некоторым переменным и функциям, относящимся к Python и его среде.
sys.setrecursionlimit(10000)
Установка максимальной глубины рекурсии в 10000 для данной программы. Это предотвращает ошибку "RecursionError: maximum recursion depth exceeded", которая может возникнуть при слишком глубокой рекурсии.
def F(n):
Определение функции F с аргументом n.
if n == 1:
Условие проверки, равно ли значение n единице.
return 1
Возвращение значения 1, если условие n == 1 истинно.
if n > 1:
Условие проверки, больше ли значение n единицы.
return 2 * n * F(n-1)
Рекурсивный вызов функции F с аргументом n-1 в случае, если n > 1. Функция возвращает удвоенное произведение n на результат вызова F(n-1).
print((F(2024) // 16 - F(2023)) / F(2022))
Вызов функций F с аргументами 2024, 2023, и 2022, выполнение арифметических операций и вывод результата выражения.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
import sys
sys.setrecursionlimit(10000)
def F(n):
if n == 1:
return 1
if n > 1:
return (n - 1) * F(n - 1)
print((2*F(2024) - F(2023)) / F(2022))
Информатика ЕГЭ | itpy
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: (М. Паршиков)
Уровень: Средний
Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими соотношениями:
F(n)=n, при n≥3000
F(n)=n+x+F(n+2), при n<3000
При каком целом значении х, значение выражения:
F(2984) − F(2988) = 5916
Не шипка сложная, но интересная задачка. Так же интересно, что ответ у нас отрицательный, на экзамене такого быть не может.
def F(n, x):
if n >= 3000:
return n
if n < 3000:
return n + x + F(n + 2, x)
for x in range(-100, 100):
if F(2984, x) - F(2988, x) == 5916:
print(x)
# Ответ: -27
def F(n, x):
Определяем функцию F, которая принимает два аргумента: n и x.
if n >= 3000:
Проверяем, больше ли или равно n значению 3000.
return n
Если n больше или равно 3000, функция возвращает значение n.
if n < 3000:
Если n меньше 3000, выполняем следующий код.
return n + x + F(n + 2, x)
Возвращаем сумму n, x и рекурсивного вызова F с увеличенным n на 2.
for x in range(-100, 100):
Запускаем цикл, перебирая значения x от -100 до 99 (включительно).
if F(2984, x) - F(2988, x) == 5916:
Проверяем, равна ли разница между F(2984, x) и F(2988, x) 5916.
print(x)
Если условие истинно, выводим текущее значение x.
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤🔥11🔥4❤3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: М. Попков
Уровень: Средний
Снежная Королева создала волшебную функцию F(n), которая помогает ей вычислять силу зимы. Эта функция определяется следующим образом:
F(n)=n−1, при n⩽3;
F(n)=F(n−2)+n/2−F(n−4), если n>3 и n чётно;
F(n)=F(n−1)×n+F(n−2), если n>3 и n нечётно,
Королева решила узнать, насколько велика сила зимы в её королевстве. Для этого вычислите значение выражения: F(4952)+2×F(4958)+F(4964).
В данном примере мы получим очень долгое выполнение нашей программы. То есть не будет никаких ошибок! Просто программа будет выполняться ну ооочень долго, поэтому добавляем декоратор @lru_cache(None) для кэширования данных.
Подробнее об этом писал тут.
import sys
from functools import *
sys.setrecursionlimit(10000)
@lru_cache(None)
def F(n):
if n <= 3:
return n - 1
if n > 3 and n % 2 == 0:
return F(n - 2) + n/2 - F(n - 4)
if n > 3 and n % 2 != 0:
return F(n - 1) * n + F(n - 2)
print(F(4952) + 2 * F(4958) + F(4964))
# Ответ: 9920
import sys
Импортирует модуль sys, который предоставляет доступ к параметрам и функциям Python-интерпретатора.
from functools import *
Импортирует все функции из модуля functools, чтобы использовать их в коде, включая lru_cache.
sys.setrecursionlimit(10000)
Устанавливает максимальную глубину стека рекурсии на 10,000, что полезно для обеспечения работы программы без переполнения стека при глубокой рекурсии.
@lru_cache(None)
Использует декоратор lru_cache для автоматического кеширования результатов вызовов функции F, чтобы уменьшить количество повторных вычислений.
def F(n):
Определяет рекурсивную функцию F, которая принимает одно целое число n и возвращает результат вычислений на основе n.
if n <= 3:
Проверяет, является ли n меньше или равным 3.
return n - 1
Возвращает n - 1, если условие n <= 3 истинно; это базовый случай функции.
if n > 3 and n % 2 == 0:
Проверяет, больше ли n 3 и является ли оно четным числом.
return F(n - 2) + n/2 - F(n - 4)
Для четного n, возвращает результат выражения, включающего рекурсивные вызовы функции F с параметрами n-2 и n-4, вычитая из суммы половину n.
if n > 3 and n % 2 != 0:
Проверяет, больше ли n 3 и является ли оно нечетным числом.
return F(n - 1) * n + F(n - 2)
Для нечетного n, возвращает произведение F(n - 1) и n, добавив F(n - 2).
print(F(4952) + 2 * F(4958) + F(4964))
Вычисляет и печатает сумму выражения, включающего F(4952), удвоенное значение F(4958) и F(4964).
Поддержать автора донатом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥12 4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Автор: М. Шагитов
Уровень: Средний
Найдите последние семь цифр суммы F(2020) + F(2200).
from functools import *
@lru_cache(None)
def F(n):
if n < 2025:
return n**2
if 2025 <= n < 2050:
return 2 * F(n-1) - F(n-2) + n
if 2050 <= n <= 2100:
return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
if n > 2100:
return 2 * F(n-1) + F(n-2) + n
print(str(F(2020) + F(2200))[-7:])
Ответ: 5098903
from functools import *
Импорт всех функций из модуля functools.
@lru_cache(None)
Декоратор, который кэширует результаты выполнения функции F, чтобы избежать повторных вычислений.
def F(n):
Определение функции F с одним параметром n.
if n < 2025:
Проверка условия: если n меньше 2025.
return n**2
Возврат квадрата числа n, если условие из пункта 4 истинно.
if 2025 <= n < 2050:
Проверка условия: если n больше либо равно 2025 и меньше 2050.
return 2 * F(n-1) - F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 6 истинно.
if 2050 <= n <= 2100:
Проверка условия: если n от 2050 до 2100 включительно.
return F(n-1) + 2 * F(n-2) + 3 * F(n-3)
Возврат значения, вычисленного по формуле, если условие из пункта 8 истинно.
if n > 2100:
Проверка условия: если n больше 2100.
return 2 * F(n-1) + F(n-2) + n
Возврат значения, вычисленного по формуле, если условие из пункта 10 истинно.
print(str(F(2020) + F(2200))[-7:])
Вызов функции F с аргументами 2020 и 2200, вычисление их суммы, преобразование в строку, взятие последних семи символов и вывод результата.
Поддержать автора: boosty
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤🔥5 4 3
Собрал для вас основные моменты, которые важно знать при решении 16 номера. Для закрепления материала оставляю ссылку на подборку всех 16 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
def F(n):
if n <= 7:
return 1
else:
return n + 2 + F(n - 1)
print(F(2024) - F(2020))
Без лишних действий просто переписываем псевдокод в свою фукнцию не придумывая велосипедов
from sys import *
setrecursionlimit(10000)
Эта настройка полезна при возникновении ошибки RecursionError: maximum recursion depth exceeded.
from functools import *
@lru_cache(None)
Используйте декоратор @lru_cache(None), если ваша программа зависает или слишком долго выполняется, так как это помогает кэшировать результаты вычислений.
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Информатика ЕГЭ | itpy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥4 4 2
Собрал для вас основные моменты, которые важно знать при решении 16 номера. Для закрепления материала оставляю ссылку на подборку всех 16 номеров разобранных на моем канале.
📚 По этой ссылке ты найдешь мои шпаргалки по всем остальным номерам ЕГЭ
Автор: Открытый вариант 2025
Уровень: Базовый
def F(n):
if n >= 2025:
return n
if n < 2025:
return n * 2 + F(n + 2)
print(F(82) - F(81)) # 1945
Автор: Досрочная волна 2025
Уровень: Базовый
import sys
sys.setrecursionlimit(100000)
def F(n):
if n <= 5:
return 1
if n > 5:
return n + F(n - 2)
print(F(2126) - F(2122))
В этом прототипе нужно расширить глубину рекурсии из-за ошибки: "RecursionError: maximum recursion depth exceeded".
Автор: Апробация 05.03.25
Уровень: Базовый
import sys
sys.setrecursionlimit(100000)
def F(n):
if n == 1:
return 1
if n > 1:
return n * F(n - 1)
print((F(2024) // 4 + F(2023)) // F(2022))
print((F(2024) / 4 + F(2023)) // F(2022))
~~~^~~
OverflowError: integer division result too large for a float
Такую ошибку мы получили на экзамене 2024 года.
Автор: М. Попков
Уровень: Базовый
from functools import *
import sys
sys.setrecursionlimit(100000)
@lru_cache(None)
def F(n):
if n <= 3:
return n - 1
if n > 3 and n % 2 == 0:
return F(n - 2) + n / 2 - F(n - 4)
if n > 3 and n % 2 != 0:
return F(n - 1) * n + F(n - 2)
for n in range(1, 5000):
F(n)
print(F(4952) + 2 * F(4958) + F(4964))
Самая неприятная ошибка, здесь необходимо использовать библиотеку functools.
📌 Тут оставлю сылку на старую версию шпаргалки, которую делал в Notion
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥18 10❤🔥8❤2