Информатика

4 314 задачвместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Пусть М – сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение М считается равным нулю. Напишите программу, которая перебирает целые числа, большие 5 400 000, в порядке возрастания и ищет среди них такие, для которых М больше 60 000 и является палиндромом, т.е. одинаково читается слева направо и справа налево. В ответе запишите первые  пять найденных чисел в порядке возрастания (каждое число в отдельной строке), справа от каждого числа (через пробел) – соответствующее  значение М.
Пусть R – сумма всех различных натуральных делителей целого числа. Например, для числа 20 имеем R = 1 + 2 + 4 + 5 + 10 + 20 = 42. Напишите программу, которая перебирает целые числа, бо́льшие 500 000, в порядке возрастания и ищет среди них такие, для которых значение R оканчивается на цифру 6. В ответе запишитепервые пять найденных чисел в порядке возрастания (каждое число в отдельной строке), а справа от каждого числа через пробел запишите соответствующее этому числу значение R.
Пусть М – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение М равным нулю. Например, для числа 20 имеем М = 2 + 10 = 12. Напишите программу, которая перебирает целые числа, большие 700 000, в порядке возрастания и ищет среди них такие, для которых М оканчивается на 4. В ответе запишите первые пять найденных чисел в порядке возрастания (каждое число в отдельной строке), через пробел от найденного числа запишите соответствующие ему значение М.
Напишите программу, которая перебирает целые числа, большие 1 125 000, в порядке возрастания и ищет среди них такие, у которых есть натуральный делитель, оканчивающийся на цифру 7 и не равный ни самому числу, ни числу 7. В ответе запишите первые пять найденных чисел в порядке возрастания, справа от каждого числа (через пробел) запишите наименьший делитель этого числа, оканчивающийся цифрой 7, не равный ни самому числу, ни числу 7.
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300425.
Найдите все натуральные числа, не превышающие 109, которые соответствуют маске ?13*79*9 и при этом без остатка делятся на 7521. В ответе запишите все найденные числа, справа от каждого числа (через пробел) – сумму его цифр. Отсортируйте числа в порядке возрастания суммы цифр, а при одинаковой сумме цифр – по возрастанию самого числа.

Каждое число и его сумму цифр записывайте в отдельной строке.
Пусть M(N) – сумма двух наибольших различных натуральных делителей натурального числа N, не считая самого числа и единицы. Если у числа N меньше двух таких делителей, то M(N) считается равным 0. Найдите все такие числа N, что 256 123 000 ≤ N ≤ 256 234 000, а десятичная запись числа M(N) заканчивается на 1234. В ответе перечислите все найденные числа N, справа от каждого запишите соответствующее значение M. Данные отсортируйте по убыванию значений M.

Каждую пару N M записывайте в отдельной строке.
У исполнителя имеются три команды, которые обозначены латинскими буквами:
A. Вычти 1
B. Вычти 6
C. Найди целую часть от деления на 2
Первая команда уменьшает число на экране на 1, вторая команда уменьшает это число на 6, третья команда делит число нацело на 2. Программа для исполнителя – это последовательность команд. Сколько существует таких программ, которые исходное число 34 преобразуют в число 6, и при этом траектория вычислений содержит числа 19 и 29 и не содержит числа 24?

Вы уже научились вычислять сигмоиду и log-loss. Теперь пришло время собрать всё вместе и написать полноценный градиентный спуск для логистической регрессии!

Ваша задача — написать программу, которая находит оптимальные параметры w и b для логистической регрессии с помощью градиентного спуска.

Что нужно сделать:

  1. Начать с начальных значений w = 0 и b = 0

  2. На каждой итерации (эпохе):

    • Вычислить предсказания: z=w⋅X+b, затем p=σ(z)

    • Вычислить градиенты по формулам: 
      \[ \frac{\partial \text{Loss}}{\partial w} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i) \cdot x_i \]
      \[ \frac{\partial \text{Loss}}{\partial b} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i) \]

      Обновить параметры:
      \[ w = w - \alpha \cdot \frac{\partial \text{Loss}}{\partial w} \]
      \[ b = b - \alpha \cdot \frac{\partial \text{Loss}}{\partial b} \]

  3. Повторить указанное количество итераций

  4. Вернуть найденные параметры и историю ошибок

Параметры алгоритма:

  • Скорость обучения (alpha): задаётся во входных данных
  • Количество итераций (epochs): задаётся во входных данных
  • Для вычисления вероятности также используйте  y_pred = np.clip(y_pred, 1e-15, 1 - 1e-15)

Формат входных данных

Первая строка: признаки (вещественные числа, разделённые пробелом)
Вторая строка: правильные классы (0 или 1, разделённые пробелом)
Третья строка: скорость обучения (вещественное число) и количество итераций (целое число), разделённые пробелом


Формат выходных данных

Выведите три числа, каждое в отдельной строке:
Первая строка: найденное значение w (с точностью до 4 знаков после запятой)
Вторая строка: найденное значение b (с точностью до 4 знаков после запятой)
Третья строка: финальное значение log-loss (с точностью до 4 знаков после запятой)
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n при n < 20;
F(n) = (n – 6) · F(n – 7), если  n>= 20.
Вычислите значение выражения (F(47872) –  290·F(47865)) / F(47858).
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = F(n / 2) + 5 , если n чётное;
F(n) = F(n / 5) + 2 , если n нечётное и делится на 5;
F(n) = 0, если n нечётное и не делится на 5. 
Сколько различных значений принимает функция F(n) на отрезке [1; 1000000]?
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = F(n / 2) + 3 , если n чётное;
F(n) = F(n / 3) + 2 , если n нечётное и делится на 3;
F(n) = 0, если n нечётное и не делится на 3. 
Определите минимальное значение n, для которого F(n) = 65.
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = 2· n · F(n – 1), если n > 1. 
Чему равно значение (F(2024) – 4 · F(2023)) / F(2022)?
Обозначим через a%b остаток от деления натурального числа a на натуральное число b, а через a//b – целую часть от деления a на b. Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 0, если n = 0,
F(n) = F(n // 8) + n % 8, если n > 0 и n нечётно;
F(n) = F(n // 8), если n > 0 и n чётно.
Определите количество значений n, таких что 89 ≤ n ≤ 810, для которых F(n) = 1
Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, если n ≥ 5000,
F(n) = n · F(n + 1), если n < 5000 и n не делится на 5;
F(n) = n · F(n + 2) / 5, если n < 5000 и n делится на 5.
Чему равно значение выражения F(4975) / F(4978)?
Алгоритм вычисления функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n, если n ≥ 1900,
F(n) = n · F(n + 1), если n < 1900 и n не делится на 3;
F(n) = n · F(n + 2) / 3, если n < 1900 и n делится на 3.
Чему равно значение выражения F(1875) / F(1880)?
Ты тренер покемонов и хочешь предсказать общую силу покемона (Total) на основе его характеристик!

Датасет содержит информацию о 721 покемоне с характеристиками:​

  • HP — очки здоровья

  • Attack — сила атаки

  • Defense — защита

  • Sp. Atk — специальная атака

  • Sp. Def — специальная защита

  • Speed — скорость

  • Total — общая сила (сумма всех характеристик) — это наша цель!

  • Type 1, Type 2 — типы покемона (Fire, Water, Grass и т.д.)​

  • Generation — поколение (1-6)​

  • Legendary — легендарный ли покемон (True/False)


Выполни следующее

  1. Загрузи и подготовь данные
  2. Раздели данные на обучающую и тестовую выборки:
    Параметры разделения:
    • разметр тестовой выборки равен 20% (~144 покемона)
    • random_state=42 
  3. Обучи модель
  4. Сделай предсказания на тестовой выборке
  5. Вычисли метрики качества (R2, MAE, RMSE)
  6. Выведи на экран значение каждой метрики (с точностью до 2-х знаков после запятой): в первой строке выведи значение R2 , во второй - MAE, в третьей - RMSE.

Для тестирования своей программы можно скачать датасет по этой ссылке
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: убрать из кучи два камня или убрать из кучи пять камней или уменьшить количество камней в куче в три раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 20 камней за один ход можно получить кучу из 18, 15 или 6 камней.
Игра завершается, когда количество камней в куче становится не более 19. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 19 или меньше камней. В начальный момент в куче было S камней, S ≥ 20. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Задание 19. 
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

Задание 20.
Найдите два наименьших значения S, когда Петя имеет выигрышную стратегию, причём одновременно выполняются два условия:
– Петя не может выиграть за один ход;
– Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.

Задание 21
Найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 227. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах оказывается 227 или больше камней. В начальный момент в первой куче было 17 камней, во второй куче – S камней; 1 ≤ S ≤ 209.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Задание 19. 
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.

Задание 20.
Найдите два наименьших значения S, когда Петя имеет выигрышную стратегию, причём одновременно выполняются два условия:
– Петя не может выиграть за один ход;
– Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.

Задание 21
Найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.  


На каждый вопрос вводите ответ в отдельной строке. Если ответ на вопрос содержит несколько значений, то разделяйте их одним пробелом.
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или четыре камня либо увеличить количество камней в куче в два раза. У каждого игрока есть неограниченное количество камней, чтобы делать ходы.
Игра завершается в тот момент, когда количество камней в куче становится не менее 58. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 58 камней или больше. В начальный момент в куче было S камней; 1 < S < 57.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Задание 19. 
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

Задание 20.
Найдите два наименьших значения S, когда Петя имеет выигрышную стратегию, причём одновременно выполняются два условия:
– Петя не может выиграть за один ход;
– Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.

Задание 21
Найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.  


На каждый вопрос вводите ответ в отдельной строке. Если ответ на вопрос содержит несколько значений, то разделяйте их одним пробелом.
Поделиться
Класснуть