Тёмный

Задания 19-21 шаблонный способ на 3 балла | ДЕМО, АПРОБАЦИЯ | ЕГЭ 2022 

Дмитрий Паршиков ЕГЭ Информатика
Просмотров 30 тыс.
50% 1

🔥🔥🔥Самый дорогой номер на экзамене. Как решать задачи 19 20 21 ЕГЭ по информатике с помощью программирования на Python.
Можно использовать как шаблон для 19 - 21 заданий в теории игр.
Для связи со мной можно использовать:
tg ЛС - t.me/pda028
tg Подготовка к ЕГЭ - t.me/harnish_inf_ege
Эпизоды:
00:00 Начало
00:24 Способы решения 19-21
02:30 Теория
04:13 Описание функции
11:24 Разбор демоверсии
14:13 Решаем апробацию - 2 кучки
17:40 Решаем задание с условием не более 100 камней
22:30 Заключение
• ЗАДАНИЕ 19-21 | СТАТГР... - СТАТГРАД 14.02.2023

Опубликовано:

 

9 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 163   
@user-zi8lj4bv8y
@user-zi8lj4bv8y 24 дня назад
t.me/+w7QoKUXpSh9lZTky - телеграмм канал с полезной информацией и подготовкой к ЕГЭ там буду разбирать некоторые задания с ДАЛЬНЕГО ВОСТОКА в дни экзамена 🔥🔥🔥
@user-ys7ql8yd2b
@user-ys7ql8yd2b Месяц назад
во, вот это я понимаю подход.Все просто , понятно.До этого смотрел других ребят, ни у одного код не понимал.Уже хотел просто зазубрить и все, но все же я пытался все таки научиться понимать , а не тупо заучить.И вот я наткнулся на ваше замечательное видио.Спасибо вам огромное! С первого раза код понял.
@user-zi8lj4bv8y
@user-zi8lj4bv8y Месяц назад
круто, рад, что разобрался! тогда 3ех баллов тебе на экзамене в этой задаче)
@Rigel_25
@Rigel_25 2 месяца назад
Спасибо тебе, добрый человек. Посмотрел видео сразу понял как решать. До этого смотрел решение через другой огромный сложный код, и поэтому думал, что питоном решать сложно
@Darkwave_off
@Darkwave_off 2 года назад
сколько же я пытался понять как решать ТИ... суммарно - почти месяц... а тут понял всё за полчаса и радуюсь жизни. спасибо Вам огромное!
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
пожалуйста! На экзамене скажите, помогло ли) успехов
@user-lf6xd7rd6w
@user-lf6xd7rd6w 5 месяцев назад
Спасибо большое, очень помогли 🙏💕
@dimadyadkin8002
@dimadyadkin8002 Год назад
У вас потрясающе получается объяснять материал, спасибо!
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
Спасибо! Приятно слышать
@leerov
@leerov 2 года назад
очень качественное видео, спасибо вам
@user-bb4uf3gx3c
@user-bb4uf3gx3c Год назад
Это лучшее видео, сколько у других разбирала, но это супер, кратко, талантливо и красиво
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
спасибо!
@yoru.umi1
@yoru.umi1 5 дней назад
спасибо большое за разбор! за день до егэ наконец то поняла как решать
@yarmukhametov
@yarmukhametov 2 года назад
Простой и легкий код! Спасибо вам огромное👏🔥🔥
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
пожалуйста! успехов
@user-hi3hs5fh3t
@user-hi3hs5fh3t 2 года назад
спасибо огромное, очень понятно
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Супер) пожалуйста
@oksanap5739
@oksanap5739 2 года назад
Круто, очень доступно
@maureenburnh4831
@maureenburnh4831 2 года назад
Оееекеше епаокщ
@shame364
@shame364 2 года назад
Жаль, что раньше на наткнулся на это видео. Хотя всë ещë есть время. Спасибо вам большое!
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
пожалуйста! Времени у тебя более чем достаточно) Успехов на экзамене
@dashafire9576
@dashafire9576 2 года назад
Потрясающее объяснение, спасибо Вам большое!
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
спасибо!
@dashafire9576
@dashafire9576 2 года назад
​@@user-zi8lj4bv8y сейчас стала разбирать Ваше решение задания 21 из Демоверсии - программа выдаёт ответ 14, а согласно ответам демоверсии должно получиться 12. Возможно, где-то в коде опечатка? Подскажите, пожалуйста, как исправить программу, чтобы она работала правильно?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
@@dashafire9576 в 21 номере нужна обязательная проверка, запустите программу при n > 2, все остальное оставьте без изменений. На экране появится лишнее число, его надо исключить из предыдущих ответов. Там скорей всего 14 и будет лишним
@dashafire9576
@dashafire9576 2 года назад
@@user-zi8lj4bv8y Немного не поняла, в какой строчке программы надо поставить n > 2. Вы имеете в виду самую первую строку внутри функции (строку if a >= 29 or n > 2)? Но в ней ведь уже есть условие на n > 2
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
@@dashafire9576 это число в условие нужно менять от задания к заданию. Оно как бы следит за тем, чтобы в игре не пошли лишние ходы. В 19 номере лишние ходы больше 2, n > 2 В 20 n > 3 В 21 n > 4 , и вот тут программу надо запустить сперва так и после этого поменять на n > 2 для проверки.
@user-it9mq6zy2t
@user-it9mq6zy2t 2 года назад
Спасибо!
@daaaaamn_boy9717
@daaaaamn_boy9717 2 года назад
Очень интересно
@SuperMrAndrik
@SuperMrAndrik 2 года назад
Спасабосо 🔥
@mezumidumpling
@mezumidumpling 5 месяцев назад
Следую инструкции на 10:04. Задание: найдите минимальное значение S, при котором Ваня выигрывает своим первым ходом при любой игре Пети. Вижу, что нужно найти минимальное значение. Значит, у противника будет any. Решаю таким способом, ответ неверный. А если я оставляю у противника all, ответ - верный. Почему так?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 месяцев назад
Ты права, но у тебя в условии есть важное дополнение, найти минимальное значение S, при ЛЮБОЙ игре Пети(на все его ходы), т.е. твой противник умный - значит all Если бы в условии просто сказали, найди минимальное значение S, когда можно выиграть, без дополнительных слов (при любом ходе противника, независимо от хода противника, имеем выигрышную стратегию), то any
@Macintosh-bk2ur
@Macintosh-bk2ur 2 года назад
За 10 дней до экзамена))) Спасибо, это намного проще экселя
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
пожалуйста, еще достаточно времени, чтобы от и до разобраться) успехов
@qwinkijut
@qwinkijut 2 года назад
помоги мне с 19
@Macintosh-bk2ur
@Macintosh-bk2ur Год назад
@@user-zi8lj4bv8y Сдал на 78 баллов, 19-21 правильные, ещё раз спасибо)
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
@@Macintosh-bk2ur супер!)
@climberg
@climberg 6 дней назад
немного сложновато, но попробую закрепить на практике! спасибо за такое подробное объяснение, хоть и через 4 дня экзамен, но лучше поздно, чем никогда
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 дней назад
удачи!
@climberg
@climberg 4 дня назад
@@user-zi8lj4bv8y спасибо!!!
@alpen_silver
@alpen_silver 20 дней назад
Господи, ну наконец хоть немного у меня жетончик провалился😂 Для меня до этого теория игр казалась вообще темным лесом..
@user-zi8lj4bv8y
@user-zi8lj4bv8y 20 дней назад
у тебя еще много времени, чтобы все это закрепить и забрать три балла😎
@blacksheep2534
@blacksheep2534 5 дней назад
я не совсем разобрался зачем он возвращает n ==2(я понимаю ,что это проверка ,но зачем возвращает непонятно) .Код работает на 10/10 и ускоряет решение заданий раза в два
@polerren590
@polerren590 6 дней назад
Дмитрий , у вас талант , редко пишу комментарии , но вам как ни кому другому не жалко , если я решу это задание , то только благодаря вам , большое вам спасибо
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 дней назад
ого, спасибо, приятно) я думаю, нет повода не решить. Главное в неудачном ходе не забыть сделать any
@user-rg9mt8wm5d
@user-rg9mt8wm5d 2 года назад
Мне нужны ещё баллы все задания обьясни
@kitness82
@kitness82 2 года назад
Попробовал я порешать этим способом через 1 кучу. Поменял все значения, как нужно. Работает корректно на 1 из пунктов при должном условии задачи. Поэтому данный способ разве что на простейшие задачи при 2 кучах. Шаг влево или вправо - руками/другими способами.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Здравствуйте! А не подскажите условие, в котором не получилось? Хочу посмотреть, если несложно
@amigo9987
@amigo9987 5 дней назад
thx
@PassiveIncome-dk3ty
@PassiveIncome-dk3ty 2 года назад
Способ пушка
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
спасибо! надеюсь получишь 3 изи балла)
@PassiveIncome-dk3ty
@PassiveIncome-dk3ty 2 года назад
@@user-zi8lj4bv8y надеюсь
@Inanti...
@Inanti... 2 года назад
Очень крутой и простой способ, но что делать если в задании -1 и // 2? Оно не хочет решаться, скорее всего проблемы с тем, что не всегда можно //2, но куда вставлять вот такие доп проверки на возможность делить и тд?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
А можно полное условие? Должно решаться запросто. Если здесь не отравить, можно в телеграмм
@gloktar567
@gloktar567 2 года назад
Даже такой Вупсень ,как я смог полностью освоить прогу за 4 часа суммарного беспрерывного просмотра видео + практики
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
ну супер) осталось на экзамене уничтожить! успехов
@user-nc8jy5eb7m
@user-nc8jy5eb7m 2 года назад
Как быть если ход нельзя повторять, как в задании статграда за 08.02.22? Спасибо
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Я в cледующем видео ответил на этот вопрос. Такой подход можно будет использовать при любых ограничениях
@user-xh9sj1xo4c
@user-xh9sj1xo4c 11 месяцев назад
чел харош, думал, что не сдам ЕГЭ, но теперь буду поступать в МГУ, спасибо за видео!!!!!!!😎😎😎😎😎😎
@free_life56
@free_life56 11 месяцев назад
Согл полн
@user-zi8lj4bv8y
@user-zi8lj4bv8y 11 месяцев назад
красава, чел!
@pryny5605
@pryny5605 2 года назад
будет ли разбор 19 номера из статграда 22.02.22
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Да, на следующей неделе вероятно соображу
@maksimlarin4302
@maksimlarin4302 2 года назад
А можно разбор на Java/Pascal?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Разбор сперва планировался только для учеников, если будет еще кому-то актуально, то думаю можно будет сделать на других ЯП)
@tayagamer3005
@tayagamer3005 5 месяцев назад
А если задание такое: найдите минимальное и максимальное значения S, при которых Ваня выигрывает своим первым или вторым ходом, *при этом для любого значения у Вани есть возможность выиграть своим первым ходом (в случае ошибки Пети)?* Я не могу понять, как записать жирную часть условия.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 месяцев назад
я бы это двумя запусками решал. Нашел сперва ответ на вопрос, при каких S Ваня выигрывает 1 или 2 ходом. Далее нашел бы S, при котором Ваня выйграет первым ходом в случае неудачного хода Пети И после посмотрел бы, где они пересекаются Например, если на первый вопрос ответы будут - 16, 17, 18, 19, 20 А на второй : 17, 18. 19, 21, 22, 23,24 То минимум и максимум, который есть в двух наборах - это 17 и 19
@thezont7045
@thezont7045 3 месяца назад
Можете объяснить почему на 12:36 мы пишем if a>=29 or n>2: ведь по сути первый ход пети(n=0 и к концу n=1), дальше вани(n=1 и к концу n=2). Я не понимаю почему мы пишем n>2, если это по сути начало второго хода Пети.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
n - номер сделанного только что хода, n > 2 - это грубо говоря, мы позволяем Пете походить второй раз(n = 3) и определяем такой ход как лишний
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
@@thezont7045 да, это список ходов, в этом списке будет набор результатов, с которыми работаем функциями all(), any()
@user-ys7ql8yd2b
@user-ys7ql8yd2b Месяц назад
а вот такой вопрос, а если ходы не должны повторяться как адаптировать программу
@user-zi8lj4bv8y
@user-zi8lj4bv8y Месяц назад
проще всего через добавление дополнительного параметра, который будет отвечать за сделанные ходы и потом на основании этого параметра, ты будешь понимать какой ход сделал противник или ты сам ранее
@astronaut1751
@astronaut1751 2 года назад
Здравствуйте ! Почему в 14:05 вы меняете n > 4 на n > 2 ведь на n > 4 выводит два значения 14 и 12 --- а на --- n > 2: выводит 14 ведь нам что нужно так и не понял , ответ будет 12 ?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Здравствуйте! В номере 21 есть противное ограничение, у игрока не должно быть ГАРАНТИРОВАННОЙ победы первым ходом. Его обязательно нужно учесть Когда вы пишете условие с n > 4, в ответе могут оказаться лишние числа(иногда они совпадают с ответом на 19 номер). Повторный запуск с n > 2 позволяет определить эти лишние числа и взять оставшиеся Например, когда я запускаю с n > 4, ответ будет: 13 20 27 Далее для проверки запускаем с n > 2: 27 Значит хорошие числа только 13 и 20. Если вопрос был найти наибольшее,то ответ 20. Без проверки случайно можно взять число 27
@astronaut1751
@astronaut1751 2 года назад
@@user-zi8lj4bv8y Спасибо большое , а в 19:54 можно сделать покомпактнее ? например вот так вот : if a >= 65 or n > 2 : if a > 100: return False return n == 2 насколько это верно , подскажите пожалуйста , спасибо большое за ваш труд !
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
@@astronaut1751 можно) но только в номере 19, в номерах 20-21 вместо False нужно написать n % 2 == (0 или 1) смотря какой ХОД_ПРОТИВНИКА
@user-vr1od9jp2b
@user-vr1od9jp2b 2 года назад
Я так понимаю, что , когда с условием и двумя кучами нужно в начале писать так: ( на Кполякове №4734 про Витю и Пашу) def f(a, b, n): if a + b >= 47: if a + b
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Да, так нужно делать когда есть ограничение и по максимальной границе. Добавьте в первое условие or n > 4. И из полученных ответов исключите ответы для or n > 2. Найденное количество и будет ответом(я пояснял эту проверку, нужно исключить стратегии, где Ваня гарантированно выигрывает)
@user-vr1od9jp2b
@user-vr1od9jp2b 2 года назад
@@user-zi8lj4bv8y Большое спасибо!
@a7dawhb2209d
@a7dawhb2209d 2 года назад
Разберите, пожалуйста, этот алгоритм для решения заданий на одну кучу. У меня код просто выдает все значения ренджа s. (28227) def f(a, n): if a >= 52 or n > 2: return n == 2 return any([f(a+1, n+1),f(a+10, n+1)]) for s in range(1, 52): if f(s, 0): print(s)
@MrGlhf
@MrGlhf 2 года назад
3 строка: return n==2
@a7dawhb2209d
@a7dawhb2209d 2 года назад
@@MrGlhf Точно, спасибо. Странно, что сам не заметил такую глупую ошибку.
@nxzdix
@nxzdix Месяц назад
здравствуйте, в 2024 году для сдачи егэ этот способен ещё актуален?
@user-zi8lj4bv8y
@user-zi8lj4bv8y Месяц назад
привет, да, конечно, это для стандартной теории игр
@valera7522
@valera7522 3 месяца назад
задание номер 4829, сайт полякова, вопрос 3. всё банально: у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. найдите s def f(a, n): if a>=100 or n>4: return n==2 or n==4 m=[f(a+1, n+1), f(a+3, n+1), f(a*3, n+1)] if n%2==0: return all(m) return any(m) for s in range(1, 100): if f(s, 0): print(s) потом меняем n>4 на n>2 и избавляемся от лишних значений. при n>4 выводятся значения 29, 31, 33, при n>2 только 33. помимо того, что у нас получается два значения (29, 31), а не одно, так правильный ответ вообще 10. подскажите, пожалуйста, что не так :/
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
привет, там доп условие есть -При этом нельзя повторять ход, который только что сделал второй игрок
@valera7522
@valera7522 3 месяца назад
@@user-zi8lj4bv8y нда. привык уже типичные задачи нарешивать, не вчитываюсь. как это условие грамотно вписать в ваш код?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
@@valera7522 надо дополнительный аргумент завести, по которому можно будет определять ранее сделанные ходы и соответствующим образом реагировать. А далее уже формировать список допустимых ходов проверкой условий. В тг я побыстрее отвечаю, если что, там есть чат для вопросов или на основном под любым постом
@mezumidumpling
@mezumidumpling 6 месяцев назад
А если условие, что кто-то проиграл? Тот, кто первый набрал >=32 камней, проиграл. Тогда данный код не подходит?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 месяцев назад
привет, подходит, там совсем немного условие нужно будет изменить. Если не получится - напиши, помогу
@mezumidumpling
@mezumidumpling 6 месяцев назад
​​​​@@user-zi8lj4bv8y поправочка: там s>=33. Так вот, я изменяла вторую строчку кода, делала *if a(от условия зависит)* Ну, по логике, теперь просто тот, у кого в куче будет *меньше* 33 камней, победит. Не получилось, код ничего не выдал. Условие такое: Петя первый, Ваня второй. Одна куча, s камней, 1
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 месяцев назад
@@mezumidumpling, смотри, получается принцип такой же, твоя задача понять, когда в игре кто-то набирает >= 33, то есть условие if s >= 33 не меняется, только теперь тебе важно, чтобы это происходило не во время хода игрока, который должен победить, а его противника. Например, мы также проверим if s >= 33 or n > 2: return n == 2 (проверяем, что это Ваня перебрал, тогда Петя выйграл) далее как всегда, ходы и тд if n % 2 == 1: return all(...) return any(...)
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 месяцев назад
@mezumidumpling Если не получится, попробуй так def f(s, n): if s >= 33 or n > 2: return n == 2 moves = [f(s + 1, n + 1), f(s * 3 - 1, n + 1)] if n % 2 == 1: return all(moves) return any(moves) for S in range(1, 32 + 1): if f(S, 0): print(S)
@mezumidumpling
@mezumidumpling 6 месяцев назад
​@@user-zi8lj4bv8y огромное спасибо, с первым вопросом всё получилось, ответ правильный. Но на остальных вопросах не работает, хотя пользуюсь тем же принципом :D Допустим, "Вася гарантированно выигрывает в один ход после 2 хода Пети". То есть всего 4 хода, П-В-П-В. На 4-ом Вася выигрывает; для этого мы проверяем, что Петя набрал s>=33 на 3-ьем ходе. If a>=33 or n>3: return n==3 if n%2==0: return all(..) return any(..) Логика *та же,* но программа не работает :/
@user-ix4lw8un2c
@user-ix4lw8un2c Год назад
Второе как раз четное число 5:15
@senuaksuuu4902
@senuaksuuu4902 Год назад
добрый день,помогите,пожалуйста, 19 получается,а дальше никак( сверяю с вашим кодом и не могу ошибку найти. вот,например,делала 20 номер с решу егэ,вот задание:Тип 20 № 27755 Добавить в вариант Сообщить об ошибке i Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч один камень или увеличить количество камней в куче в четыре раза. Например, пусть в одной куче 6 камней, а в другой 9 камней; такую позицию мы будем обозначать (6, 9). За один ход из позиции (6, 9) можно получить любую из четырёх позиций: (7, 9), (24, 9), (6, 10), (6, 36). Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 61. Победителем считается игрок, сделавший последний ход, то есть первым получивший позицию, в которой в кучах будет 61 или больше камней. В начальный момент в первой куче было 3 камня, во второй куче  - S камней, 1 ≤ S ≤ 57. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока  - значит, описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по ней игрока, которые не являются для него безусловно выигрышными, то есть не гарантируют выигрыш независимо от игры противника. Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия: - Петя не может выиграть за один ход; - Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Найденные значения запишите в ответе в порядке возрастания без разделительных знаков. вот,что я писала: def f(a, b, n): if a + b >=61 or n >3: return n == 3 if n % 2 == 1: return all([f(a+1,b,n+1),f(a*4,b,n+1),f(a,b+1,n+1),f(a,b*4,n+1)]) return any([f(a+1,b,n+1),f(a*2,b,n+1),f(a,b+1,n+1),f(a,b*2,n+1)]) print([s for s in range(1,57+1) if f(3,s,0)]) вроде всё также,но ничего не выдаёт,в чём ошибка?
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
Добрый день, а у вас что-то с ходами в any, будто из другого решения скопировали) делайте переменную отдельно для ходов: m =[f(a+1,b,n+1),f(a*4,b,n+1),f(a,b+1,n+1),f(a,b*4,n+1)] и потом ее передавайте в all и any if n % 2 == 1: return all(m) return any(m)
@vihapp4634
@vihapp4634 Год назад
Здравствуйте встретила такое условие, что камней больше 10. s>10 Т.е лимит мы не знаем как тогда быть? В начальный момент в первой куче было 18 камней, во второй куче - S камней, S > 12.
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
Здравствуйте! Давайте разберемся, сможете в телеграмме скинуть скрин задания?
@vihapp4634
@vihapp4634 Год назад
@@user-zi8lj4bv8y Конечно! Можно ваш тг?
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
@@vihapp4634 @pda028
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
Разобрались, в ближайшие дни открою текстовый канал на дискорд сервере, задавайте вопросы туда
@vihapp4634
@vihapp4634 Год назад
Здравствуйте ещё раз! Встретила задания про цепочки Укажите, у кого есть выигрышная стратегия при исходном наборе слов {АБВГДАБВГДХ, ДГВБАДГВБА}. Если у нас не цифры, а буквы(цепочки) как решать в такое случае, могли бы помочь?
@valera7522
@valera7522 3 месяца назад
задание номер 6770, сайт полякова. вопрос 3, условие как на 13:32, только ищем max S. моя программа выдаёт числа "20, 21, 26, 29", правильный ответ "21". не могу понять в чём ошибка def f(a, n): if a>=82 or n>4: return n==2 or n==4 m=[f(a+2, n+1), f(a+4, n+1), f(a*3, n+1)] if n%2==0: return all(m) return any(m) for s in range(1, 82): if f(s, 0): print(s)
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
Валера, привет, все правильно, ты нашел позиции, из которых можно выиграть первым или вторым ходом, НО при этом туда попали позиции, из которых выигрывают ТОЛЬКО первым ходом. Их нужно исключить, как я показывал в видео. Просто в программе поменяй n > 4 на n >2 и ты увидишь лишнии позиции (26, 27): def f(a, n): if a>=82 or n>2: return n==2 or n==4 m=[f(a+2, n+1), f(a+4, n+1), f(a*3, n+1)] if n%2==0: return all(m) return any(m) for s in range(1, 82): if f(s, 0): print(s)
@valera7522
@valera7522 3 месяца назад
@@user-zi8lj4bv8y спасибо, понял :) можете ещё подсказать, что означает условие "Петя может выбирать, каким ходом выиграет Ваня"?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 месяца назад
@@valera7522 понятия не имею 😅 вероятно, имеется ввиду, что есть такие позиции, где Петя может специально поддаться и сделать так, что Ваня победит. Типа специальный неудачный ход
@wixight
@wixight 4 дня назад
Шикарное объяснение, но как быть, если последний игрок, сделавший ход проигрывает?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 4 дня назад
Все просто, не стоит за день до егэ забивать голову сомнительными формулировками, я бы так посоветовал поступить)
@lewnd
@lewnd 2 года назад
не понял только когда использовать any а когда использовать all?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
почти всегда будет так if ... return all([...]) return any ([...]) когда был неудачных ход, то везде any
@lewnd
@lewnd 2 года назад
@@user-zi8lj4bv8y понял
@not_today_better_now
@not_today_better_now Год назад
а с возведением в квадрат как работать? я пишу a * a или a ** 2, и программа не работает
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
должно работать, скиньте в тг программу, в другом проблема думаю
@not_today_better_now
@not_today_better_now Год назад
@@user-zi8lj4bv8y а тг такое же, как и в описании?
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
@@not_today_better_now да, либо на канале с задачами t.me/harnish_inf_ege под любым постом напишите условие, я отвечу сегодня
@Crazy_D0c
@Crazy_D0c 2 месяца назад
def f(a, n): if a >= 29 or n > 2: return n == 2 or n == 4 if n % 2 == 0: return all([f(a + 1, n + 1), f(a * 2, n + 1)]) return any([f(a + 1, n + 1), f(a * 2, n + 1)]) for s in range(1, 29): if f(s, 0): print(s) # Ответ 14, а правильный 12 # 🙃
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 месяца назад
привет, а ты n > 2 забыл поменять на n > 4/ У тебя Ваня не успевает второй раз походить тогда 12 будет)
@Crazy_D0c
@Crazy_D0c 2 месяца назад
@@user-zi8lj4bv8y Да, 4 верный вариант. А как вы на 14:06 советуете и зачем? Вы же про двойку говорите, но этот ход нас не интересует. Объясните, пожалуйста.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 месяца назад
@@Crazy_D0c cмотри, это уже финальная проверка для исключения лишний позиции. Тебе по заданию говорят в №21 - Ваня не должен гарантированно выйграть первым ходом. когда ты пишешь n > 4, ты находишь ответы, а n > 2 ты уже делаешь проверку и исключаешь эту лишнюю позицию.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 месяца назад
@@Crazy_D0c а просто может быть такое, что тебя попросят по заданию выбрать максимальное , и при n > 4 на экране появились числа: 12 13 14 Человек не думая может выбрать число 14, но оно лишнее т.к. Ваня гарантировано при 14 выигрывал первым ходом. Вот чтобы его исключить, понимать. какое именно число, то лучше сделать проверку при n > 2
@Crazy_D0c
@Crazy_D0c 2 месяца назад
@@user-zi8lj4bv8y Благодарю!
@thescore91
@thescore91 2 года назад
Вариант 11 из сборника Крылова 2022года. Если нужно полный текст, могу скинуть. Почему в 20-21 заданиях не получается ответ? В задании 20 ответ 35 и 70, у меня только 70. В задании 21 ответ 69, у меня 71. Скинул как делал 20 def f(a,b,n): if a+b>=144 or n>3: return n==3 if n%2==1: return all([f(a+1,b,n+1),f(a*2,b,n+1),f(a,b+1,n+1),f(a,b*2,n+1)]) return any([f(a+1,b,n+1),f(a*2,b,n+1),f(a,b+1,n+1),f(a,b*2,n+1)]) for s in range(1, 143): if f(1, s, 0): print(s) Это 21: def f(a,b,n): if a+b>=144 or n>4: return n==2 or n==4 if n%2==0: return all([f(a+1,b,n+1),f(a*2,b,n+1),f(a,b+1,n+1),f(a,b*2,n+1)]) return any([f(a+1,b,n+1),f(a*2,b,n+1),f(a,b+1,n+1),f(a,b*2,n+1)]) for s in range(1, 143): if f(1, s, 0): print(s)
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Внимательно почитайте, что должно быть не менее 144 камней. А так все отлично написано, только в том моменте ошибка
@thescore91
@thescore91 2 года назад
@@user-zi8lj4bv8y спасибо. Удивлён, что номер 19 у меня получился правильно с неверным условием 🤣
@thescore91
@thescore91 2 года назад
@@user-zi8lj4bv8y Блин, эти я решил. 19 и 21 следующего 12 варианта тоже, а в 20 откуда-то одно лишнее значение 23 🙈 В 13 варианте тоже в 20 номере 3 ответа пишет 12 вариант: def f(a,b,n): if a*b>=144 or n>3: return n==3 if n%2==1: return all([f(a+1,b,n+1), f(a*2,b,n+1), f(a,b+1,n+1), f(a,b*2,n+1)]) return any([f(a+1,b,n+1), f(a*2,b,n+1), f(a,b+1,n+1), f(a,b*2,n+1)]) for s in range(1,142): if f(2,s,0): print(s) Уже раз 5 проглядел код, вроде всё верно, поэтому без понятия
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
@@thescore91 if f(2,s,0): в предпоследней строчке ошибка, внимательно посмотри, сколько камней в 1-ой куче в начале игры
@thescore91
@thescore91 2 года назад
@@user-zi8lj4bv8y "В начальный момент в первой куче было два камня"
@varvarapro7839
@varvarapro7839 Год назад
9:14 помогите я не могу понять вот это, когда any, a когда all.... Не могу понять 10000 раз пересмотрела этот момент
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
Привет! А здесь прям подробно это и не объяснялось, видео как краткая методичка. Ты можешь просто запомнить, что в if пишется all, вне пишется any. Кроме ситуации, когда противник сделал НЕУДАЧНЫЙ ход, в таком случае в обоих местах будет any() А так смысл всего этого, проверить ВСЕ ходы противника и убедиться, что на ВСЕ его ходы можно найти ХОТЯ БЫ ОДИН ответ. Поэтому ходы противника мы помещаем в all(), а игрока, который должен победить в any(). Условие if n % 2 == ..., как раз проверяет чей сейчас БЫЛ ход, для того чтобы правильно понять, чей будет следующий. Т.е. если БЫЛ ход Вани, то БУДЕТ ход Пети. Тогда на месте ..., мы пишем остаток связанный с игроком, который должен победить, чтобы после его хода - направить противника в all() и проверить все его ответы. Например, если должен победить Ваня, у тебя будет написано: if n % 2 == 0: #проверяем что был Ваня(четн) return all(...) return any(...) Вообще легко делать проверку у тебя проверка на четность в этом условии должна совпадать с четностью чисел наверху. Если в начале программы стоит return n == 3, то и в if будешь проверять нечетность n % 2 == 1. Если n == 2, то в if проверишь n %2 == 0
@varvarapro7839
@varvarapro7839 Год назад
@@user-zi8lj4bv8y спасибо большое, вроде поняла)) Нужно только закрепить нарешиванием этих задач
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
@@varvarapro7839 да, т.к. они с высокой вероятностью останутся шаблонными
@firesteel1313
@firesteel1313 2 года назад
Не совсем понимаю кого вы имеете в виду под противником, если в условии у нас только Петя и Ваня. Слова "противник" даже в условии нет. У нас просто 2 игрока имеются и по ним строятся случаи.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Это уже от конкретного вопроса зависит, в номерах 19 и 21 обычно под противником имеется ввиду - Петя В 20 - Ваня
@frame1256
@frame1256 2 года назад
за день наботаю ?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
вполне реально)
@frame1256
@frame1256 2 года назад
@@user-zi8lj4bv8y Хорошо, буду отписываться с каждым результатом) Мне вот было бы интересно посмотреть у вас программки для 16 и 23 задания
@felixmarlboro7808
@felixmarlboro7808 Год назад
9:13 14:30
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
мм?
@felixmarlboro7808
@felixmarlboro7808 Год назад
@@user-zi8lj4bv8y для себя отметил
@user-zi8lj4bv8y
@user-zi8lj4bv8y Год назад
@@felixmarlboro7808 а, читер! Успехов на экзамене)
@felixmarlboro7808
@felixmarlboro7808 Год назад
@@user-zi8lj4bv8y спасибо большое
@user-qp1dv9gk5g
@user-qp1dv9gk5g 2 года назад
я один ничего не понял... any all что это такое
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Если вы сдаете на python - почитайте в интернете, как работают эти функции. Конкретно в данном номере мы их используем так: any - ищем хотя бы один выигрышный ход игрока, если такой ход найдется - значит стратегия для нас выигрышная all - на все ходы противника, если хотя бы один False - стратегия проигрышная через any ходит игрок, который должен победить по условию, через all - противник. Ход игрока, сделавшего последний ход проверяется в if через остаток
@user-qp1dv9gk5g
@user-qp1dv9gk5g 2 года назад
@@user-zi8lj4bv8y Спасибо я разобрался с кодом, просто не знал "Трехместное выражение if/else" сейчас разбираюсь в коде, КЛассно придумано! Долго создавали алгоритм?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
@@user-qp1dv9gk5g недолго) как сразу компьютерный егэ появился, немного адаптировал его только в процессе работы с учениками. Это базовый алгоритм через рекурсию, думаю, если полазить в интернетах, то много у кого будет похожий подход
@slain1gg
@slain1gg 2 года назад
Если вы не понимаете как адаптировать задание по эксель, значит плохо пытались. Решать игры нужно уметь всеми способами, чтобы можно было себя перепроверить. Поэтому я сочувствую вам, если вы не умеете решать игры а Экселе
@taynori7818
@taynori7818 2 года назад
Чел, это программа, которая выдаст тебе ответ за 5 минут, причем шанс ошибки и человеческого фактора буквально в пяти позициях. В экселе же в 21 задании таблица не помещается на экран и шанс ошибки там куда выше, чем с этими пятью позициями
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
а кто сказал, что я чего-то не понимаю? Перепроверять себя всеми способами, это сколько времени нужно отдать, 15-20 минут? Достаточно написать программу и перепроверить себя руками. Если у вас получается решать экселем - супер. Но рекомендовать его как основной способ решения - никогда не буду
@h3nkyy
@h3nkyy 2 года назад
Не понятный видос от слова совсем. Народ не забивайте мозги такими объяснениями. Эти номера руками в два счёта делать.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Спасибо за мнение. Такими объяснениями люди забивают себе мозги и стабильно решают задание на три балла, а делать "перебор руками в два счета", учитывая сколько времени вы на это потеряете, крайне сомнительная затея. Для перепроверки - если только. Ну и плюс человеческий фактор никто не отменял при ручном анализе. Успехов на экзамене
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 года назад
Ну и в любом случае, если я для вас непонятно объяснил, найдите другой способ, но на пк. Зачем рисковать на экзамене? Лучше значения из автоматизированного решения уже проверить руками
@user-lf6xd7rd6w
@user-lf6xd7rd6w 5 месяцев назад
Спасибо большое, очень помогли 🙏💕
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 месяцев назад
круто, рад, что помогло) есть еще бесплатные занятия, если будет актуально, то посмотри в тг
@user-zh7co4ee1f
@user-zh7co4ee1f 2 года назад
Спасибо!
Далее
PROVA A NON RIDERE ASSURDA 😂
00:56
Просмотров 4 млн