стереть
Класс
8 9 10 11
Нужно авторизоваться
Нужно авторизоваться
Нужно авторизоваться
Нет аккаунта?
При наличии аккаунта на платформе можно
Введите больше 6 символов
Проблемы со входом?
Введи последние 4 цифры номера, с которого
поступит звонок. Трубку брать не нужно.
Повторный звонок через
сек.
Добро пожаловать!
Зарегистрируйся и получи Демо мастер-группы на 10 дней по любимым предметам бесплатно.
Добро пожаловать!
Как тебя зовут?
Введите не меньше 2 символов
Привяжем номер телефона
Введите не меньше 2 символов
Привяжем номер телефона
Повторный звонок через
30 сек.
Теперь нужно подтвердить номер - введи последние 4 цифры номера, с которого поступит звонок. Трубку брать не нужно
Введите не меньше 2 символов
Придумаем пароль
Почти закончили! Теперь нужно создать надежный пароль
Введите не меньше 2 символов
Немного о тебе
В какой класс ты переходишь?
Укажи, какие предметы будешь или хочешь сдавать
Введите не меньше 2 символов
На почту 12345@mail.ru отправлена ссылка для сброса пароля.
OK
Информатика

Задача по теме: "Смешанные выражения"

Информатика
Задание 15 Смешанные выражения
Подсказка
За подсказку ты получишь лишь половину баллов
Использовать
Автор
Крылов С.С., Чуркина Т.Е. Информатика: единый государственный экзамен. — Москва: Издательство "Национальное образование", 2023. — 256 с. Материалы публикуются в учебных целях
Просмотры
1692
banner-img

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m. Для какого наименьшего натурального числа А формула 

(ДЕЛ(x,20)-> ДЕЛ(x,11)) (x+A>=300)

тождественно истинна (т. е. принимает значение 1) при любом натуральном значении переменной х?

 

loading
Решение
single-task__solution-banner

Решение:

def f(x, A):
    return ((x%20==0) <= (x%11!=0)) or (x+A>=300)

for a in range(1, 1000):
    if all(f(x, a) for x in range(1,10000)):
        print(a)
        break

 

Разберем код по частям:

  1. Функция f(x, A):

    • Принимает два аргумента, x и A.
    • Возвращает булево значение, которое вычисляется на основе двух условий:
      • Первое условие: (x % 20 == 0) <= (x % 11 != 0)
        • Это выражение вернет True, если (x % 20 == 0) является ложным, и (x % 11 != 0) истинным. В противном случае вернется False.
      • Второе условие: (x + A >= 300)
        • Это выражение вернет True, если сумма x + A больше или равна 300.
  2. Цикл for:

    • Итерируется по значениям переменной a в диапазоне от 1 до 999 (включительно).
  3. Генератор списка внутри цикла:

    • all(f(x, a) for x in range(1, 10000))
      • Для каждого значения x в диапазоне от 1 до 9999 (включительно) вычисляется значение функции f(x, a).
      • all возвращает True, если все значения в списке истинны, иначе возвращает False.
  4. Условие if:

    • Если все значения функции f(x, a) истинны для всех x в диапазоне от 1 до 9999, то код выполняет следующее:
      • print(a): Выводит значение переменной a.
      • break: Завершает выполнение цикла.

Таким образом, код находит первое значение a (в диапазоне от 1 до 999), для которого все значения функции f(x, a) истинны для всех x в диапазоне от 1 до 9999. Как только такое значение a найдено, оно выводится, и цикл завершается.


Ответ: 80

На экзамене это задание принесло бы тебе 2/2 баллов.
Решать еще

Сообщение об ошибке

Расскажите, в каком месте допущена ошибка, мы как можно быстрее её исправим. Спасибо за обратную связь!

Здравствуйте!

Выберите информацию о себе ниже

pay-success-img

Оплата прошла успешно!

pay-un-success-img

Оплата не прошла

Попробуйте снова