спасибо!! при разборе любого задания следом указываю ваш канал)) самые актуальные и несложные решения. в особенности тут-без деления на кучу прототипов
Иван, большое спасибо за твои разъяснения, всегда всё по делу. А как решать на Питоне задачу, когда изменяются две переменные (т.е. не на прямой, а на плоскости)? Например, вот эта: # На числовой прямой задан отрезок A. Известно, что формула #((x ∈ A) → (x**2 ≤ 81)) ∧ ((y**2 ≤ 36) → (y ∈ A)) # тождественно истинна при любых вещественных x и y. Какую наибольшую #длину может иметь отрезок A?
Ребят, срочно нужна ваша помощь. В последней задаче перед выражением в скобках к примеру может стоять знак отрицания. Но я не понимаю как это правильно записать в программе, так как когда пишу просто not перед скобкой, выводится неверный ответ. Буду очень признателен🙏
А вот в последней задаче разве не a2 - a1 + 1? Допустим отрезок от 10 до 12, у нас же 2 числа подходят, а 3: 10, 11, 12. Так же и на большем промежутке. Я ошибаюсь, почему?
По задаче №1. Поясните для тех, кто в танке, почему мы производим перебор А до первого значения False указанного выражения, если задача стоит найти наименьшее А для истинного значения выражения, то есть значения True. То есть, исходя из конечного результата, должно быть так. Мы проверяем А поочередно 1,2,3...., при которых выражение показывает False, и как только мы доходим до А = 15, выражение принимает значение True. После этого мы останавливаем алгоритм. Или я не так понимаю?
Здравствуйте, а у вас на канале есть видео как решать задание с двумя промежутками(P=[10,29] и Q=[13,18] без проги? Если да подскажите как оно называется.
Подскажите пожалуйста, почему у меня при подсчёте наибольшего значения считает до 1000 если я беру in range(1,1001), до 1001 если я беру (1,1002) и т.д :(((
В range первое число берется в промежуток, а последнее нет. Математически выглядит так: range(1, 1001) ----> [1, 1001) range(1, 1002) ----> [1, 1002) То есть последнее число не учитывается)
Почему не получается на программах на смартфоне вывести ответ? Питон пишет, что программа закончена, но ответа нет. В другом приложении вообще ничего не выдает, в чем проблема?
А что делать, если выражение тождественно ложно? Например: Для какого наибольшего целого неотрицательного числа А выражение (x < A) and (y < A) and (x * y > 601) тождественно ЛОЖНО, т.е. принимает значение 0 при любых целых положительных x и y?
Почему при идентичном(условия разные) коде у меня значение получается всегда на 1 меньше? Вот задача: На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение (x ∈ D) → ((¬(x ∈ C)∧ ¬(x ∈ A)) → ¬(x ∈ D)) истинно (т. е. принимает значение 1) при любом значении переменной х. Вот решение: s=[] for a1 in range(0, 101): for a2 in range(0, 101): F = True for x in range(0, 101): F*=((17
Скорее всего здесь работает принцип +- 1, когда длина и интервал - это разные вещи. В одном случае мы вычитаем единицу из полученной разности, в другой оставляем как есть. Погугли это)
Доброго времени суток. Подскажите пожалуйста, а как записать в питоне выражение где перед промежутком стоит знак отрицания. например: ¬(x ∈ P) ∨ ¬(x ∈ Q) ∨ (x ∈ A). / P = [130; 171] и Q = [150; 185]
@@blackplayer1248, пожалуйста. А что делать, если выражение тождественно ложно? Например: Для какого наибольшего целого неотрицательного числа А выражение (x < A) and (y < A) and (x * y > 601) тождественно ЛОЖНО, т.е. принимает значение 0 при любых целых положительных x и y?
@@treehouse7766 Всё то же самое, только меняешь flag с True на False def f(a, x, y): return (x < a) and (y < a) and (x * y > 601) for a in range(0, 300): flag = False for x in range(0, 300): for y in range(0, 300): if f(a, x, y): flag = True break if flag == False: print(a) Последнее выведенное значение будет ответом
Подскажите, у меня всегда ответ на 1 меньше от правильного. ЗАДАНИЕ На числовой прямой даны два отрезка: Р = [22, 72] и Q = [42, 102]. Какова наименьшая возможная длина интервала A, что логическое выражение ¬(¬(х ∈ А) ∧ (х ∈ Р)) ∨ (х ∈ Q) тождественно истинно, то есть принимает значение 1 при любом значении переменной х. (ОТВЕТ:20) ПРОГА s=[] for A1 in range(1,100): for A2 in range(1,100): flag=0 for x in range(-100,100): if (not(not(A1
бро абсолютно то же самое, причем не на одну прогу, у меня на каждую вторую ответ получается на 1 меньше или на 1 больше от правильного если разобрался в чем проблема поясни пожалуйста!
@@plugar_inf , здравствуйте! благодарю за ответ. В своем видео вы не разобрали подобный тип заданий: Сколько существует целых значений числа A, при которых формула ((x < 5) → (x2 < A)) /\ ((y2 ≤ A) → (y ≤ 5)) тождественно истинна при любых целых неотрицательных x и y? В таких заданиях у переменной a наблюдается фиксированный промежуток...
@@plugar_inf Знак должен быть строгим только в выражении "a"? То есть если перед выражением "a" стоит "not", тогда в скобках один знак строгий, а другой нет?
всмысле то есть поразрядная коньюнкция это то же самое что и обычное "и"???? почему вы делаете когда х и 13 в условии просто ставите х&13 сказано что делается это с помощью поразрядной коньюнкции, это просто x&13???
Здравствуйте. Помогите пожалуйста решить задачу. Задача: Укажите наибольшее целое значение А, при котором выражение (y + 3x ≠ 60) ∨ (2x > A) ∨ (y > A) истинно для любых целых положительных значений x и y. Мое решение: def f(x, y, a): return (((y + 3*x) != 60) or (2*x > a) or (y > a)) for a in range(1, 1001): key = True for x in range(1, 1001): for y in range(1, 1001): if not(f(x, y, a)): key == False break if key == False: break if key == True: print(a) Программа почему-то выводит мне числа от 1 и дальше без остановки. Хотя в ответах написано 29...
Ответ к этому заданию: 23 for A in range(1, 1001): c=0 for x in range(1, 1001): for y in range(1, 1001): if ((y + 3*x != 60) or (2*x > A) or (y > A))==0: c=1 break if c==0: print(A)
@@sneix3870 математики там минимум на начальном этапе точно, основное это логика. Советую начать с написания скриптов для игр, даже самые простые скрипты из нескольких строк помогут понять что к чему и разобраться с логикой в программировании, большинство языков работают по одному принципу, так что выбирать можно любой, я начинал с языков C, C#. Ещё можно делать простые сайты на html, там тоже ничего сложного, простые теги и их параметры, просто чтобы начать понимать логику. А дальше уже как пойдет и что ближе к тебе будет.
1. Внутри оператора if не ставят равенство. 2. Само выражение лучше вынести в отдельную функцию. 3. Вместо флага проще использовать оператор else для цикла for и сделать break, т.к. дальнейшее выполнение внешного цикла нам не интересно. Либо внешний цикл сделать через while и привязать к флагу.
Очень понятное объяснение. Разобраны все прототипы задания 15. Долго искала такое видео. Спасибо огромное!
спасибо!! при разборе любого задания следом указываю ваш канал)) самые актуальные и несложные решения. в особенности тут-без деления на кучу прототипов
я закончил 9 класс, только что смотрел ваш урок по python про циклы, и вот сразу нашел где это может понадобиться)
Очень хорошо объясняете, спасибо!
Очень интересно про отрезки!
Про делимость и с координатами уже делала подобным способом
Иван, большое спасибо за твои разъяснения, всегда всё по делу. А как решать на Питоне задачу, когда изменяются две переменные (т.е. не на прямой, а на плоскости)? Например, вот эта:
# На числовой прямой задан отрезок A. Известно, что формула
#((x ∈ A) → (x**2 ≤ 81)) ∧ ((y**2 ≤ 36) → (y ∈ A))
# тождественно истинна при любых вещественных x и y. Какую наибольшую
#длину может иметь отрезок A?
Спасибо Вам большое. Были трудности с некоторыми типами 16 задания. Благодаря Вам полностью разобрался. Сейчас буду изучать 15 по вашему видеоролику.
Спасибо, все оч. логично и поэтому понятно. Еще раз спасибо.
лайк авансом
Зашёл сюда, чтобы посмотреть, как автор будет решать задания со множествами грубой силой, но, видимо, не судьба....
За последнюю задачу лайк!
Спасибо. Отличный разбор
Спасибо вам огромное!
спасибо большое, все очень понятно!!
Не получается решить задачу с отрезками, когда в логическом уравнении присутствует тождественное равенство. Выдает ответ на единицу меньше.
Можешь сказать почему так?
Всё понравилось, спасибо
ЛУЧШИЙ
самое время начать готовиться
Ребят, срочно нужна ваша помощь. В последней задаче перед выражением в скобках к примеру может стоять знак отрицания. Но я не понимаю как это правильно записать в программе, так как когда пишу просто not перед скобкой, выводится неверный ответ. Буду очень признателен🙏
надо скорее всего not(condition) обернуть в (not(condition))
@@михаилкиселёв-н5г вроде бы так и делал, в любом случае попробую еще раз, спасибо!
А вот в последней задаче разве не a2 - a1 + 1? Допустим отрезок от 10 до 12, у нас же 2 числа подходят, а 3: 10, 11, 12. Так же и на большем промежутке. Я ошибаюсь, почему?
По задаче №1. Поясните для тех, кто в танке, почему мы производим перебор А до первого значения False указанного выражения, если задача стоит найти наименьшее А для истинного значения выражения, то есть значения True.
То есть, исходя из конечного результата, должно быть так. Мы проверяем А поочередно 1,2,3...., при которых выражение показывает False, и как только мы доходим до А = 15, выражение принимает значение True. После этого мы останавливаем алгоритм.
Или я не так понимаю?
Здравствуйте, как решать отрезки, если их будет не 2(как в видео), а 3?
Просто вложить ещё цикл или аналитически
Здравствуйте, а у вас на канале есть видео как решать задание с двумя промежутками(P=[10,29] и Q=[13,18] без проги? Если да подскажите как оно называется.
просто отмечаешь точки на отрезке и по логике делаешь. Если не понятно то посмотри ролик информатика Роди по 15.
Подскажите пожалуйста, почему у меня при подсчёте наибольшего значения считает до 1000 если я беру in range(1,1001), до 1001 если я беру (1,1002) и т.д :(((
В range первое число берется в промежуток, а последнее нет.
Математически выглядит так:
range(1, 1001) ----> [1, 1001)
range(1, 1002) ----> [1, 1002)
То есть последнее число не учитывается)
@@fariznasibov1881 это понятно. Но ответ в задачах к меня неправильный потому что программа улетает считать до вот этого предпоследгего числа
@@СофьяШулакова-п3н а до какого вам числа нужно?
Ну или скиньте программу или задачу, постараюсь помочь)
Почему не получается на программах на смартфоне вывести ответ? Питон пишет, что программа закончена, но ответа нет. В другом приложении вообще ничего не выдает, в чем проблема?
потому что надо решать на компьютере
Код на отрезки не рабочий, при использовании ответ всегда будет с погрешностью в единицу
а как написать, если x не равен A
А что делать, если выражение тождественно ложно? Например: Для какого наибольшего целого неотрицательного числа А выражение (x < A) and (y < A) and (x * y > 601) тождественно ЛОЖНО, т.е. принимает значение 0 при любых целых положительных x и y?
Из строки if not (f(x, y, a)): убираем not. Таким образом, мы исключаем все случаи, когда выражение истинно.
@@ТамирланФирреро , огромное спасибо.
в первой задаче надо было у X и Y поставить значения от 0 до 1001 потому что ноль это тоже целое число и при таких значениях ответ будет не 15 ,а 16
Почему при идентичном(условия разные) коде у меня значение получается всегда на 1 меньше?
Вот задача: На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение
(x ∈ D) → ((¬(x ∈ C)∧ ¬(x ∈ A)) → ¬(x ∈ D))
истинно (т. е. принимает значение 1) при любом значении переменной х.
Вот решение:
s=[]
for a1 in range(0, 101):
for a2 in range(0, 101):
F = True
for x in range(0, 101):
F*=((17
Скорее всего здесь работает принцип +- 1, когда длина и интервал - это разные вещи. В одном случае мы вычитаем единицу из полученной разности, в другой оставляем как есть. Погугли это)
Доброго времени суток. Подскажите пожалуйста, а как записать в питоне выражение где перед промежутком стоит знак отрицания. например: ¬(x ∈ P) ∨ ¬(x ∈ Q) ∨ (x ∈ A). / P = [130; 171] и Q = [150; 185]
Ты можешь просто перед скобкой написать not
not(130
@@blackplayer1248 да я пробовал так делать. компилятор в таком случае ничего не выдаёт
@@skliksklok7529
def f(a1, a2, x):
return not(130
@@blackplayer1248, пожалуйста. А что делать, если выражение тождественно ложно? Например: Для какого наибольшего целого неотрицательного числа А выражение (x < A) and (y < A) and (x * y > 601) тождественно ЛОЖНО, т.е. принимает значение 0 при любых целых положительных x и y?
@@treehouse7766 Всё то же самое, только меняешь flag с True на False
def f(a, x, y):
return (x < a) and (y < a) and (x * y > 601)
for a in range(0, 300):
flag = False
for x in range(0, 300):
for y in range(0, 300):
if f(a, x, y):
flag = True
break
if flag == False:
print(a)
Последнее выведенное значение будет ответом
Легендарен
А как меняется код, если в последнем типе вместо истины нужно искать ложь?
Если имеешь ввиду, что все значения должны быть истинными, то
if (condition) == True:
flag = False
Далее также, как в любом примере
Подскажите, у меня всегда ответ на 1 меньше от правильного.
ЗАДАНИЕ
На числовой прямой даны два отрезка: Р = [22, 72] и Q = [42, 102]. Какова наименьшая возможная длина интервала A, что логическое выражение
¬(¬(х ∈ А) ∧ (х ∈ Р)) ∨ (х ∈ Q)
тождественно истинно, то есть принимает значение 1 при любом значении переменной х. (ОТВЕТ:20)
ПРОГА
s=[]
for A1 in range(1,100):
for A2 in range(1,100):
flag=0
for x in range(-100,100):
if (not(not(A1
бро абсолютно то же самое, причем не на одну прогу, у меня на каждую вторую ответ получается на 1 меньше или на 1 больше от правильного
если разобрался в чем проблема поясни пожалуйста!
проблема в знаках, если есть отрицание, то когда вы ставите not, одно неравенство должно быть строгое
@@plugar_inf , здравствуйте! благодарю за ответ. В своем видео вы не разобрали подобный тип заданий:
Сколько существует целых значений числа A, при которых формула
((x < 5) → (x2 < A)) /\ ((y2 ≤ A) → (y ≤ 5))
тождественно истинна при любых целых неотрицательных x и y?
В таких заданиях у переменной a наблюдается фиксированный промежуток...
@@plugar_inf спасибо!
@@plugar_inf Знак должен быть строгим только в выражении "a"? То есть если перед выражением "a" стоит "not", тогда в скобках один знак строгий, а другой нет?
А как быть, если в 1 типе заданий спрашивают не' наименьшее целое значение А', а 'Сколько существует целых значений числа A' ?
сделай счетчик в цикл
Видео посмотри до конца
@@dedushkapul847 уже не нужно, год как бы прошел
Спасибо
всмысле то есть поразрядная коньюнкция это то же самое что и обычное "и"???? почему вы делаете когда х и 13 в условии просто ставите х&13 сказано что делается это с помощью поразрядной коньюнкции, это просто x&13???
Это и есть оператор поразрядной коньюнкции
@@plugar_inf обычное "и" между числами?
Иван Викторович, мы решаем задания из егэ на Python, а на самом экзамене будет возможность им пользоваться?
Конечно!
@@plugar_inf Расскажите в двух словах, как закодить множества?
в точности скопировал показанную в начале видеоролика программу и получил в выводе 1, а не 15
wtf?!
Здравствуйте. Помогите пожалуйста решить задачу.
Задача:
Укажите наибольшее целое значение А, при котором выражение
(y + 3x ≠ 60) ∨ (2x > A) ∨ (y > A)
истинно для любых целых положительных значений x и y.
Мое решение:
def f(x, y, a):
return (((y + 3*x) != 60) or (2*x > a) or (y > a))
for a in range(1, 1001):
key = True
for x in range(1, 1001):
for y in range(1, 1001):
if not(f(x, y, a)):
key == False
break
if key == False:
break
if key == True:
print(a)
Программа почему-то выводит мне числа от 1 и дальше без остановки. Хотя в ответах написано 29...
Ответ к этому заданию: 23
for A in range(1, 1001):
c=0
for x in range(1, 1001):
for y in range(1, 1001):
if ((y + 3*x != 60) or (2*x > A) or (y > A))==0:
c=1
break
if c==0:
print(A)
@@oligano спасибо) Я нашел ошибку в своем коде. Вместо = поставил == и поэтому выдавало ошибку)
что значит функция def и return?
это объявления функции в языке python
Почему мы берём значение A от 1? В одном задании решу егэ ответ правильный только если от 0 осуществлять перебор
Говорят про положительные числа, 0 - нейтральное
@@михаилкиселёв-н5г я только что загуглил ноль это целое число
Не знаю что было год назад. Но в этом году другая версия кумир.
8:25
а как в пайчарме сделать шаг с входом в подпрограмму (как на паскале)?
А как множества закодить?
их лучше руками, на следующем стриме покажу
Со скольки лет надо начинать учить языки программирования?
Возраст не влияет на это, я ещё в 7 классе этим заинтересовался, сейчас мне 21 и я продолжаю изучать. Чем раньше, тем лучше
@@BigStream100 ну я 5 класс закончил, и не очень понимаю математику в программировании( в программировании математика 7-8 класса)
@@sneix3870 математики там минимум на начальном этапе точно, основное это логика. Советую начать с написания скриптов для игр, даже самые простые скрипты из нескольких строк помогут понять что к чему и разобраться с логикой в программировании, большинство языков работают по одному принципу, так что выбирать можно любой, я начинал с языков C, C#. Ещё можно делать простые сайты на html, там тоже ничего сложного, простые теги и их параметры, просто чтобы начать понимать логику. А дальше уже как пойдет и что ближе к тебе будет.
@@BigStream100 А Python для новичка не надо изучать? Я его сейчас начал изучать
@@sneix3870 Можно любой язык, питон тоже актуальный и не сложный
Интересно, как питон понимает где импликация, а где меньше или равно)
импликация по факту и есть меньше или равно)
1. Внутри оператора if не ставят равенство.
2. Само выражение лучше вынести в отдельную функцию.
3. Вместо флага проще использовать оператор else для цикла for и сделать break, т.к. дальнейшее выполнение внешного цикла нам не интересно.
Либо внешний цикл сделать через while и привязать к флагу.
нет
Ошалеть просто хаха