Задание 15 егэ информатика отрезки программа

(Вторая буква гласная → Первая буква гласная) Ù Последняя буква согласная?

1) ИРИНА 2) МАКСИМ 3) МАРИЯ 4) СТЕПАН

Высказывание является конъюнкцией двух выражений (Вторая буква гласная → Первая буква гласная) и Последняя буква согласная. Конъюнкция истинна тогда, когда все операнды истинны. Значит, выражение Последняя буква согласная должно быть истинным. Этому условию удовлетворяют имена под номерами 2 и 4.

Поочередно подставим в высказывание значения выражений для имен 2 и 4:

Вторая буква гласная = 1

Первая буква гласная = 0

Последняя буква согласная = 1

(1 → 0) Ù 1 = 0 Ù 1 = 0 Высказывание ложно.

Вторая буква гласная = 0

Первая буква гласная = 0

Последняя буква согласная = 1

(0 → 0) Ù 1 = 1 Ù 1 = 0 Высказывание истинно.

Поиск числа, удовлетворяющего условию логического высказывания

Для ка­ко­го из при­ведённых чисел X ис­тин­но ло­ги­че­ское усло­вие:

Для того, чтобы ло­ги­че­ское усло­вие ¬((X крат­но 5) → (X крат­но 25)) было истинным, необходимо, чтобы условие (X крат­но 5) → (X крат­но 25) было ложным. Им­пли­ка­ция воз­вра­ща­ет ложь, толь­ко если первый операнд равен 1 (истина), а второй — 0 (ложь).

ВСЕ ТИПЫ ЗАДАНИЯ №15 решаем программированием

Т.е. число Х должно быть кратно 5, но не кратно 25.

Этому условию удовлетворяет только число под но­ме­ром 3 (65).

Обозначим через m5 = 1110225 ≠ 0 → (xА ≠ 0) тождественно истинна (т.е. принимает значение 1 при любом неотрицательном целом значении переменной х)?

Для наглядности введем обозначения: A ≡ (x B ≡ (x C ≡ (x25 = 0 истинно для всех х, имеющих нули в 0-м, 3-м и 4-м (справа) разрядах двоичной записи: х = *…*00**0

1710 = 100012 , тогда x (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

При­ме­нив пре­об­ра­зо­ва­ние им­пли­ка­ции, по­лу­ча­ем:

Изобразим множества P и ¬ Q на числовой прямой:

Вы­ра­же­ние долж­но быть ис­тин­но для лю­бо­го x, значит нужно «закрасить» всю числовую прямую. Для этого выражение ¬A долж­но «закрасить» оставшийся отрезо­к [13;17], т.е. быть истинным на этом отрезке. Тогда, вы­ра­же­ние A долж­но быть ис­тин­но внут­ри про­ме­жут­ка, ко­то­рый не имеет ни одной общей точки с отрезком [13;17].

Из всех от­рез­ков толь­ко от­ре­зок [20, 35] удо­вле­тво­ря­ет этим усло­ви­ям:

Пра­виль­ный ответ ука­зан под но­ме­ром 4.

На чис­ло­вой пря­мой даны два от­рез­ка: P = [25; 50] и Q = [32; 47]. Ука­жи­те наи­боль­шую воз­мож­ную длину про­ме­жут­ка A, для ко­то­ро­го фор­му­ла

(¬ (x Î A) → (x Î P)) → ((x Î A) → (x Î Q))

тож­де­ствен­но ис­тин­на, то есть при­ни­ма­ет зна­че­ние 1 при любом зна­че­нии пе­ре­мен­ной х.

(x ∈А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

Тогда формула примет вид:

Пре­об­ра­зу­ем дан­ное вы­ра­же­ние (заменим импликацию):

ЭТО ИЗДЕВАТЕЛЬСТВО НАД 15 ЗАДАНИЕМ. Универсальный код на отрезки // ЕГЭ информатика 2021

Выражение (¬ A ∨ Q) должно быть истинным на всей числовой прямой. Множество Q – это отрезок [32, 47], значит выражение ¬A долж­но «закрасить» оставшуюся часть числовой оси, т.е. быть истинным на этом промежутке. Тогда, вы­ра­же­ние A долж­но быть ис­тин­но внут­ри про­ме­жут­ка [32;47]. Тогда максимальная длина отрезка A достигается, когда А совпадает с Q, и равна 15.

Поиск множества чисел, удовлетворяющего условию логического высказывания

Читайте также:
Как удалить программу в дебиан через терминал

Эле­мен­та­ми мно­жеств А, P, Q яв­ля­ют­ся на­ту­раль­ные числа, причём

Из­вест­но, что вы­ра­же­ние ((x A) → (x P)) ∨ (¬(x Q) → ¬(x A))

ис­тин­но (т. е. при­ни­ма­ет зна­че­ние 1) при любом зна­че­нии пе­ре­мен­ной х.

Опре­де­ли­те наи­боль­шее воз­мож­ное ко­ли­че­ство эле­мен­тов в мно­же­стве A.

(x ∈А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

Тогда выражение примет вид:

Преобразуем выражение (заменим импликацию):

Чтобы выражение было истинно при любом зна­че­нии пе­ре­мен­ной х, все натуральные числа должны либо входить в P, либо входить в Q, либо не входить в A. Т.е. ¬ A – это все числа, не входящие ни в P, ни в Q. Значит A – это числа, входящие в P или Q. Наи­боль­шее воз­мож­ное ко­ли­че­ство эле­мен­тов в мно­же­стве A – это количество всех различных элементов множеств P и Q. Таких элементов 17.

Эле­мен­та­ми мно­же­ства А яв­ля­ют­ся на­ту­раль­ные числа. Из­вест­но, что вы­ра­же­ние

ис­тин­но (т. е. при­ни­ма­ет зна­че­ние 1) при любом зна­че­нии пе­ре­мен­ной х. Опре­де­ли­те наи­мень­шее воз­мож­ное зна­че­ние суммы эле­мен­тов мно­же­ства A.

Тогда выражение примет вид:

Преобразуем выражение (заменим импликацию):

Вы­ра­же­ние ¬P ∨ ¬Q ис­тин­но при всех зна­че­ни­ях x, кроме зна­че­ний 6 и 12. Сле­до­ва­тель­но, про­ме­жу­ток А долж­ны со­дер­жать точки 6 и 12. То есть ми­ни­маль­ный набор точек в про­ме­жут­ке А ≡ . Сумма эле­мен­тов мно­же­ства А равна 18.

Спасибо за то, что пользуйтесь нашими статьями. Информация на странице «Задача №15. Использование основных понятий математической логики. Логические высказывания, числовые отрезки.» подготовлена нашими авторами специально, чтобы помочь вам в освоении предмета и подготовке к экзаменам.

Чтобы успешно сдать необходимые и поступить в ВУЗ или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий. Также вы можете воспользоваться другими статьями из данного раздела.

Публикация обновлена: 07.06.2023

Источник: ege-study.ru

ЕГЭ по информатике — Задание 15 (Отрезки на Python)

Привет! Сегодня посмотрим задачи на отрезки из 15 задания ЕГЭ по информатике.

Решим с помощью шаблона на Python и помощью рассуждений. Повторите основные логические операции в этой статье.

Покажу Вам уникальный и понятный способ для борьбы с задачами на отрезки из 15 задания ЕГЭ по информатике.

Приступим к тренировочным задачам на отрезки.

На числовой прямой даны два отрезка B=[10; 15] и С=[20; 27]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение

ложно (т.е. принимает значение 0) при любом значении переменной x.

Решение с помощью шаблона на языке Python.

Приведу собственную разработку, как можно решить задачи на отрезки из 15 задания ЕГЭ по информатике с помощью шаблона на языке Python (Питон).

def F(a, b, x): if a return True else: return False mn=10**9 for a in range(0, 100): for b in range(a, 100): k=0 for i in range(1, 200): x = i/2 if not( (F(10, 15, x) or F(20, 27, x)) ) or F(a, b, x): k=k+1 if k==199: mn=min(mn, b-a) print(mn)

Здесь заводим функцию F(a, b, x). Она принимает три параметра: начало отрезка a, конец отрезка b и точку x. Если точка x лежит в отрезке [a;b], то функция вернёт True, иначе False.

Читайте также:
Какие программы должен знать инженер конструктор

Затем делаем два вложенных цикла. Это поиск отрезка A. Переменная a — это начало отрезка A. Переменная b — это конец отрезка A. Для каждой точки a пробуем различные точки b, которые находится правее, чем точка a.

Мы начинаем проходить переменной b со значения a, потому что в некоторых задачах длина искомого отрезка A может быть равна нулю.

Для каждого отрезка-кандидата заводим счётчик k. Прокручиваем переменную i в диапазоне от 1 до 199 включительно. А x будет крутится от 0.5 до 99.5 с шагом 0.5, тем самым имитируя фразу при любых значениях x.

Внутри «цикла i» проверяем логическое выражение. Если выражение удовлетворяет условию задачи, то прибавляем к счётчику k единицу для данного отрезка A=[a; b].

При составлении логического выражения может помочь табличка.

Логическая операция Представление в Питоне
Отрицание ¬ not()
Логическое умножение ∧ and
Логическое сложение ∨ or
Следование A ⟶ B not(A) or B
Равносильность ≡ ==

После окончания «цикла i» проверяем счёт k. Если логическое выражение сработало при всех значениях x, то в счётчике будет число 199. Это количество итераций в «цикле i». Если такое выполняется, то нам подходит этот отрезок A.

Среди всех отрезков A, которые удовлетворяют условию задачи, выбираем с наименьшей длиной с помощью функции min.

Примечание: У нас всегда получается отрезок A c квадратными скобками на концах A=[a, b]. Даже, если в задачке должен быть отрезок с выколотыми точками, то на длину это никак не влияет, если мы ищем минимальный отрезок, поэтому всё равно будет получатся правильный ответ. Если же мы ищем наибольшую длину, нужно получать всегда отрезок A=(a,b) c выколотыми точками. Об этот речь пойдёт ниже.

Получается 17.

Решение с помощью рассуждений.

Видим, что ко всему выражению применяется логическое отрицание. Мы можем убрать это отрицание, но тогда нужно будет сделать, чтобы выражение было истинным, а не ложным.

В подобных задачах идём от обратного. Нам нужно найти, когда выражение будет истинным, но мы исследуем случай, когда выражение будет стремится ко лжи.

ЕГЭ по информатике - Задание 15 отрезки (Задача 1)

Найдём, при каких значениях x левое выражение будет выдавать 1.

ЕГЭ по информатике - Задание 15 отрезки (Задача 1) опасные x

Здесь заштрихованы те иксы, которые приводят к тому, что левое выражение выдаёт 1. Это опасные x. Они «приближают» всё выражение к нулю.

Наша задача этого не допустить. У нас есть только один инструмент: подобрать такой отрезок A, чтобы правое выражение при опасных иксах выдавало 1. Тогда мы получим желаемый результат.

Т.е. при опасных иксах правое выражение должно выдавать 1. Чтобы покрыть все иксы приходится брать отрезок A=[10, 27].

ЕГЭ по информатике - Задание 15 отрезки (Задача 1) отрезок A

В ответе напишем длину отрезка A: 27 — 10 = 17. Здесь достаточно из наибольшей точки отнять наименьшую.

Ответ: 17

Задача (Раунд 2)

На числовой прямой даны два отрезка: B = [14; 20] и С = [15; 27]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение

¬(x ∈ A) ⟶ ((x ∈ B) ≡ (x ∈ C))

Читайте также:
Какая программа включает интернет

истинно (т.е. принимает значение 1) при любом значении переменной x.

Решение:

Решение с помощью шаблона на языке Python.

def F(a, b, x): if a return True else: return False mn=10**9 for a in range(0, 100): for b in range(a, 100): k=0 for i in range(1, 200): x=i/2 if F(a, b, x) or (F(14, 20, x) == F(15, 27, x)): k=k+1 if k==199: mn=min(mn, b-a) print(mn)

Получается ответ 13.

Решение с помощью рассуждений.

«Главной скрипкой» логического выражение является следование. Именно эта операция соединяет большие блоки логического выражения.

Нас будет интересовать тот случай, когда логическое выражение, наоборот, будет стремится к 0. Тогда правое логическое подвыражение должно равняться 0, а с помощью левого подвыражения, где находится отрезок A, мы будем исправлять ситуацию.

ЕГЭ по информатике - Задание 15 отрезки (Задача 2) Главная Скрипка

Заштрихуем те значения x, при которых правое подвыражение даёт ноль. Равносильность даёт ноль, когда два выражения имеют разные значения. Т.е. если x находится в одном отрезке, то в другом отрезке его не должно быть.

ЕГЭ по информатике - Задание 15 отрезки (Задача 2) опасные значения

В подобных задачах можно не обращать внимание на закрашенные и выколотые точки на концах отрезков, потому что в дальнейшем нужно найти длину отрезка A, а длина от этого не зависит. Поэтому пишем и рисуем отрезки с некоторым приближением до одной точки.

Получаются два отрезка [14; 15) и (20; 27]. Это и есть «опасные» значения x. При этих значениях выражение уже «наполовину» ложно. Но с помощью A мы не дадим превратится ему в 0 при любых иксах.

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

Т.к. там стоит отрицание, убрав его, можно сказать, что в левом подвыражении должна стоять 1 при опасных значениях икс.

ЕГЭ по информатике - Задание 15 отрезки (Задача 2) отрезок A

Чтобы покрыть все два отрезка опасных значений, выбираем A=[14; 27]. Нас просили найти минимальный отрезок A. Меньше не можем взять, т.к. тогда не все заштрихованные иксы будут закрыты.

Длина получается 27 — 14 = 13.

Ответ: 13

Задача (Отрезок максимальной длины)

На числовой прямой даны два отрезка: P = [43; 49] и Q = [44; 53]. Укажите наибольшую возможную длину такого отрезка A, что формула

((x ∈ A) → (x ∈ P)) ∨ (x ∈ Q)

тождественно истинна, то есть принимает значение 1 при любых x.

Решение:

Решение с помощью шаблона на языке Python.

def F(a, b, x): if a return True else: return False def F2(a, b, x): if a < x < b: return True else: return False mx=0 for a in range(0, 100): for b in range(a, 100): k=0 for i in range(1, 200): x=i/2 if (not(F2(a, b, x)) or F(43, 49, x)) or F(44, 53, x): k=k+1 if k==199: mx=max(mx, b-a) print(mx)

Ответ получается 10. Здесь ищем максимальный отрезок A. При поиске отрезка максимальной длины, нужно создать функцию F2, и её применять к отрезку A, чтобы получался всегда отрезок с выколотыми точками A=(a, b).

Решение с помощью рассуждений.

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru