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

  Рет қаралды 31,088

Дмитрий Паршиков ЕГЭ Информатика

Дмитрий Паршиков ЕГЭ Информатика

Күн бұрын

Пікірлер: 169
@user-zi8lj4bv8y
@user-zi8lj4bv8y 4 ай бұрын
t.me/+w7QoKUXpSh9lZTky - телеграмм канал с полезной информацией и подготовкой к ЕГЭ там буду разбирать некоторые задания с ДАЛЬНЕГО ВОСТОКА в дни экзамена 🔥🔥🔥
@кабан-ф4ц
@кабан-ф4ц 5 ай бұрын
во, вот это я понимаю подход.Все просто , понятно.До этого смотрел других ребят, ни у одного код не понимал.Уже хотел просто зазубрить и все, но все же я пытался все таки научиться понимать , а не тупо заучить.И вот я наткнулся на ваше замечательное видио.Спасибо вам огромное! С первого раза код понял.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 ай бұрын
круто, рад, что разобрался! тогда 3ех баллов тебе на экзамене в этой задаче)
@Darkwave_off
@Darkwave_off 2 жыл бұрын
сколько же я пытался понять как решать ТИ... суммарно - почти месяц... а тут понял всё за полчаса и радуюсь жизни. спасибо Вам огромное!
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
пожалуйста! На экзамене скажите, помогло ли) успехов
@mazer4372
@mazer4372 Ай бұрын
спасибо большое, залутал свои баллы и поступил, куда хотел благодаря вам
@user-zi8lj4bv8y
@user-zi8lj4bv8y 28 күн бұрын
красава)
@Rigel_25
@Rigel_25 5 ай бұрын
Спасибо тебе, добрый человек. Посмотрел видео сразу понял как решать. До этого смотрел решение через другой огромный сложный код, и поэтому думал, что питоном решать сложно
@dimadyadkin8002
@dimadyadkin8002 Жыл бұрын
У вас потрясающе получается объяснять материал, спасибо!
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
Спасибо! Приятно слышать
@littlefrogg-ee4ve
@littlefrogg-ee4ve 3 ай бұрын
Завтра егэ по инфе. Ваш видос спасает, спасибо, теперь знаю как решать🥺❤️ долго пыталась понять, думала код наизусть выучить, а благодаря вам ПОНЯЛА
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 ай бұрын
супер)
@Macintosh-bk2ur
@Macintosh-bk2ur 2 жыл бұрын
За 10 дней до экзамена))) Спасибо, это намного проще экселя
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
пожалуйста, еще достаточно времени, чтобы от и до разобраться) успехов
@qwinkijut
@qwinkijut 2 жыл бұрын
помоги мне с 19
@Macintosh-bk2ur
@Macintosh-bk2ur 2 жыл бұрын
@@user-zi8lj4bv8y Сдал на 78 баллов, 19-21 правильные, ещё раз спасибо)
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
@@Macintosh-bk2ur супер!)
@polerren590
@polerren590 3 ай бұрын
Дмитрий , у вас талант , редко пишу комментарии , но вам как ни кому другому не жалко , если я решу это задание , то только благодаря вам , большое вам спасибо
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 ай бұрын
ого, спасибо, приятно) я думаю, нет повода не решить. Главное в неудачном ходе не забыть сделать any
@NastushaAir
@NastushaAir 9 ай бұрын
Спасибо большое, очень помогли 🙏💕
@ОльгаТапкова
@ОльгаТапкова 2 жыл бұрын
Это лучшее видео, сколько у других разбирала, но это супер, кратко, талантливо и красиво
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
спасибо!
@yarmukhametov
@yarmukhametov 2 жыл бұрын
Простой и легкий код! Спасибо вам огромное👏🔥🔥
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
пожалуйста! успехов
@ЫбаЫгы
@ЫбаЫгы Жыл бұрын
чел харош, думал, что не сдам ЕГЭ, но теперь буду поступать в МГУ, спасибо за видео!!!!!!!😎😎😎😎😎😎
@free_life56
@free_life56 Жыл бұрын
Согл полн
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
красава, чел!
@yoru_umi
@yoru_umi 3 ай бұрын
спасибо большое за разбор! за день до егэ наконец то поняла как решать
@kitness82
@kitness82 2 жыл бұрын
Попробовал я порешать этим способом через 1 кучу. Поменял все значения, как нужно. Работает корректно на 1 из пунктов при должном условии задачи. Поэтому данный способ разве что на простейшие задачи при 2 кучах. Шаг влево или вправо - руками/другими способами.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Здравствуйте! А не подскажите условие, в котором не получилось? Хочу посмотреть, если несложно
@climberg
@climberg 3 ай бұрын
немного сложновато, но попробую закрепить на практике! спасибо за такое подробное объяснение, хоть и через 4 дня экзамен, но лучше поздно, чем никогда
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 ай бұрын
удачи!
@climberg
@climberg 3 ай бұрын
@@user-zi8lj4bv8y спасибо!!!
@shame364
@shame364 2 жыл бұрын
Жаль, что раньше на наткнулся на это видео. Хотя всë ещë есть время. Спасибо вам большое!
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
пожалуйста! Времени у тебя более чем достаточно) Успехов на экзамене
@mezumidumpling
@mezumidumpling 9 ай бұрын
Следую инструкции на 10:04. Задание: найдите минимальное значение S, при котором Ваня выигрывает своим первым ходом при любой игре Пети. Вижу, что нужно найти минимальное значение. Значит, у противника будет any. Решаю таким способом, ответ неверный. А если я оставляю у противника all, ответ - верный. Почему так?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 9 ай бұрын
Ты права, но у тебя в условии есть важное дополнение, найти минимальное значение S, при ЛЮБОЙ игре Пети(на все его ходы), т.е. твой противник умный - значит all Если бы в условии просто сказали, найди минимальное значение S, когда можно выиграть, без дополнительных слов (при любом ходе противника, независимо от хода противника, имеем выигрышную стратегию), то any
@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 для проверки.
@oksanap5739
@oksanap5739 2 жыл бұрын
Круто, очень доступно
@maureenburnh4831
@maureenburnh4831 2 жыл бұрын
Оееекеше епаокщ
@ДашаСергеева-ф1ч
@ДашаСергеева-ф1ч 2 жыл бұрын
спасибо огромное, очень понятно
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Супер) пожалуйста
@leerov
@leerov 2 жыл бұрын
очень качественное видео, спасибо вам
@valera7522
@valera7522 7 ай бұрын
задание номер 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 7 ай бұрын
привет, там доп условие есть -При этом нельзя повторять ход, который только что сделал второй игрок
@valera7522
@valera7522 7 ай бұрын
@@user-zi8lj4bv8y нда. привык уже типичные задачи нарешивать, не вчитываюсь. как это условие грамотно вписать в ваш код?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 7 ай бұрын
@@valera7522 надо дополнительный аргумент завести, по которому можно будет определять ранее сделанные ходы и соответствующим образом реагировать. А далее уже формировать список допустимых ходов проверкой условий. В тг я побыстрее отвечаю, если что, там есть чат для вопросов или на основном под любым постом
@ЧелТЫ-ч7ы
@ЧелТЫ-ч7ы 2 жыл бұрын
Мне нужны ещё баллы все задания обьясни
@PassiveIncome-dk3ty
@PassiveIncome-dk3ty 2 жыл бұрын
Способ пушка
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
спасибо! надеюсь получишь 3 изи балла)
@PassiveIncome-dk3ty
@PassiveIncome-dk3ty 2 жыл бұрын
@@user-zi8lj4bv8y надеюсь
@blacksheep2534
@blacksheep2534 3 ай бұрын
я не совсем разобрался зачем он возвращает n ==2(я понимаю ,что это проверка ,но зачем возвращает непонятно) .Код работает на 10/10 и ускоряет решение заданий раза в два
@igelsch_di
@igelsch_di 4 ай бұрын
Господи, ну наконец хоть немного у меня жетончик провалился😂 Для меня до этого теория игр казалась вообще темным лесом..
@user-zi8lj4bv8y
@user-zi8lj4bv8y 4 ай бұрын
у тебя еще много времени, чтобы все это закрепить и забрать три балла😎
@Crazy_D0c
@Crazy_D0c 5 ай бұрын
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 5 ай бұрын
привет, а ты n > 2 забыл поменять на n > 4/ У тебя Ваня не успевает второй раз походить тогда 12 будет)
@Crazy_D0c
@Crazy_D0c 5 ай бұрын
@@user-zi8lj4bv8y Да, 4 верный вариант. А как вы на 14:06 советуете и зачем? Вы же про двойку говорите, но этот ход нас не интересует. Объясните, пожалуйста.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 ай бұрын
@@Crazy_D0c cмотри, это уже финальная проверка для исключения лишний позиции. Тебе по заданию говорят в №21 - Ваня не должен гарантированно выйграть первым ходом. когда ты пишешь n > 4, ты находишь ответы, а n > 2 ты уже делаешь проверку и исключаешь эту лишнюю позицию.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 5 ай бұрын
@@Crazy_D0c а просто может быть такое, что тебя попросят по заданию выбрать максимальное , и при n > 4 на экране появились числа: 12 13 14 Человек не думая может выбрать число 14, но оно лишнее т.к. Ваня гарантировано при 14 выигрывал первым ходом. Вот чтобы его исключить, понимать. какое именно число, то лучше сделать проверку при n > 2
@Crazy_D0c
@Crazy_D0c 5 ай бұрын
@@user-zi8lj4bv8y Благодарю!
@АндрейВасильков-ю6м
@АндрейВасильков-ю6м 2 жыл бұрын
Спасибо!
@gloktar567
@gloktar567 2 жыл бұрын
Даже такой Вупсень ,как я смог полностью освоить прогу за 4 часа суммарного беспрерывного просмотра видео + практики
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
ну супер) осталось на экзамене уничтожить! успехов
@daaaaamn_boy9717
@daaaaamn_boy9717 2 жыл бұрын
Очень интересно
@amigo9987
@amigo9987 3 ай бұрын
thx
@valera7522
@valera7522 7 ай бұрын
задание номер 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 7 ай бұрын
Валера, привет, все правильно, ты нашел позиции, из которых можно выиграть первым или вторым ходом, НО при этом туда попали позиции, из которых выигрывают ТОЛЬКО первым ходом. Их нужно исключить, как я показывал в видео. Просто в программе поменяй 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 7 ай бұрын
@@user-zi8lj4bv8y спасибо, понял :) можете ещё подсказать, что означает условие "Петя может выбирать, каким ходом выиграет Ваня"?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 7 ай бұрын
@@valera7522 понятия не имею 😅 вероятно, имеется ввиду, что есть такие позиции, где Петя может специально поддаться и сделать так, что Ваня победит. Типа специальный неудачный ход
@SuperMrAndrik
@SuperMrAndrik 2 жыл бұрын
Спасабосо 🔥
@thezont7045
@thezont7045 6 ай бұрын
Можете объяснить почему на 12:36 мы пишем if a>=29 or n>2: ведь по сути первый ход пети(n=0 и к концу n=1), дальше вани(n=1 и к концу n=2). Я не понимаю почему мы пишем n>2, если это по сути начало второго хода Пети.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 ай бұрын
n - номер сделанного только что хода, n > 2 - это грубо говоря, мы позволяем Пете походить второй раз(n = 3) и определяем такой ход как лишний
@user-zi8lj4bv8y
@user-zi8lj4bv8y 6 ай бұрын
@@thezont7045 да, это список ходов, в этом списке будет набор результатов, с которыми работаем функциями all(), any()
@wixight
@wixight 3 ай бұрын
Шикарное объяснение, но как быть, если последний игрок, сделавший ход проигрывает?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 3 ай бұрын
Все просто, не стоит за день до егэ забивать голову сомнительными формулировками, я бы так посоветовал поступить)
@tayagamer3005
@tayagamer3005 9 ай бұрын
А если задание такое: найдите минимальное и максимальное значения S, при которых Ваня выигрывает своим первым или вторым ходом, *при этом для любого значения у Вани есть возможность выиграть своим первым ходом (в случае ошибки Пети)?* Я не могу понять, как записать жирную часть условия.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 9 ай бұрын
я бы это двумя запусками решал. Нашел сперва ответ на вопрос, при каких S Ваня выигрывает 1 или 2 ходом. Далее нашел бы S, при котором Ваня выйграет первым ходом в случае неудачного хода Пети И после посмотрел бы, где они пересекаются Например, если на первый вопрос ответы будут - 16, 17, 18, 19, 20 А на второй : 17, 18. 19, 21, 22, 23,24 То минимум и максимум, который есть в двух наборах - это 17 и 19
@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)
@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) смотря какой ХОД_ПРОТИВНИКА
@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 "В начальный момент в первой куче было два камня"
@МаксимДураксим
@МаксимДураксим Жыл бұрын
Второе как раз четное число 5:15
@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 Точно, спасибо. Странно, что сам не заметил такую глупую ошибку.
@maksimlarin4302
@maksimlarin4302 2 жыл бұрын
А можно разбор на Java/Pascal?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Разбор сперва планировался только для учеников, если будет еще кому-то актуально, то думаю можно будет сделать на других ЯП)
@mezumidumpling
@mezumidumpling 9 ай бұрын
А если условие, что кто-то проиграл? Тот, кто первый набрал >=32 камней, проиграл. Тогда данный код не подходит?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 9 ай бұрын
привет, подходит, там совсем немного условие нужно будет изменить. Если не получится - напиши, помогу
@mezumidumpling
@mezumidumpling 9 ай бұрын
​​​​@@user-zi8lj4bv8y поправочка: там s>=33. Так вот, я изменяла вторую строчку кода, делала *if a(от условия зависит)* Ну, по логике, теперь просто тот, у кого в куче будет *меньше* 33 камней, победит. Не получилось, код ничего не выдал. Условие такое: Петя первый, Ваня второй. Одна куча, s камней, 1
@user-zi8lj4bv8y
@user-zi8lj4bv8y 9 ай бұрын
@@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 9 ай бұрын
@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 9 ай бұрын
​@@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(..) Логика *та же,* но программа не работает :/
@Inanti...
@Inanti... 2 жыл бұрын
Очень крутой и простой способ, но что делать если в задании -1 и // 2? Оно не хочет решаться, скорее всего проблемы с тем, что не всегда можно //2, но куда вставлять вот такие доп проверки на возможность делить и тд?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
А можно полное условие? Должно решаться запросто. Если здесь не отравить, можно в телеграмм
@pryny5605
@pryny5605 2 жыл бұрын
будет ли разбор 19 номера из статграда 22.02.22
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Да, на следующей неделе вероятно соображу
@nxzdix
@nxzdix 4 ай бұрын
здравствуйте, в 2024 году для сдачи егэ этот способен ещё актуален?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 4 ай бұрын
привет, да, конечно, это для стандартной теории игр
@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 да, т.к. они с высокой вероятностью останутся шаблонными
@ЛеонидПроценко
@ЛеонидПроценко 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. Найденное количество и будет ответом(я пояснял эту проверку, нужно исключить стратегии, где Ваня гарантированно выигрывает)
@ЛеонидПроценко
@ЛеонидПроценко 2 жыл бұрын
@@user-zi8lj4bv8y Большое спасибо!
@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 Жыл бұрын
Здравствуйте ещё раз! Встретила задания про цепочки Укажите, у кого есть выигрышная стратегия при исходном наборе слов {АБВГДАБВГДХ, ДГВБАДГВБА}. Если у нас не цифры, а буквы(цепочки) как решать в такое случае, могли бы помочь?
@user-n-x6l
@user-n-x6l 2 жыл бұрын
Как быть если ход нельзя повторять, как в задании статграда за 08.02.22? Спасибо
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Я в cледующем видео ответил на этот вопрос. Такой подход можно будет использовать при любых ограничениях
@кабан-ф4ц
@кабан-ф4ц 4 ай бұрын
а вот такой вопрос, а если ходы не должны повторяться как адаптировать программу
@user-zi8lj4bv8y
@user-zi8lj4bv8y 4 ай бұрын
проще всего через добавление дополнительного параметра, который будет отвечать за сделанные ходы и потом на основании этого параметра, ты будешь понимать какой ход сделал противник или ты сам ранее
@felixmarlboro7808
@felixmarlboro7808 Жыл бұрын
9:13 14:30
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
мм?
@felixmarlboro7808
@felixmarlboro7808 Жыл бұрын
@@user-zi8lj4bv8y для себя отметил
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
@@felixmarlboro7808 а, читер! Успехов на экзамене)
@felixmarlboro7808
@felixmarlboro7808 Жыл бұрын
@@user-zi8lj4bv8y спасибо большое
@firesteel1313
@firesteel1313 2 жыл бұрын
Не совсем понимаю кого вы имеете в виду под противником, если в условии у нас только Петя и Ваня. Слова "противник" даже в условии нет. У нас просто 2 игрока имеются и по ним строятся случаи.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Это уже от конкретного вопроса зависит, в номерах 19 и 21 обычно под противником имеется ввиду - Петя В 20 - Ваня
@lovxxs
@lovxxs Жыл бұрын
а с возведением в квадрат как работать? я пишу a * a или a ** 2, и программа не работает
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
должно работать, скиньте в тг программу, в другом проблема думаю
@lovxxs
@lovxxs Жыл бұрын
@@user-zi8lj4bv8y а тг такое же, как и в описании?
@user-zi8lj4bv8y
@user-zi8lj4bv8y Жыл бұрын
@@lovxxs да, либо на канале с задачами t.me/harnish_inf_ege под любым постом напишите условие, я отвечу сегодня
@slain1gg
@slain1gg 2 жыл бұрын
Если вы не понимаете как адаптировать задание по эксель, значит плохо пытались. Решать игры нужно уметь всеми способами, чтобы можно было себя перепроверить. Поэтому я сочувствую вам, если вы не умеете решать игры а Экселе
@taynori7818
@taynori7818 2 жыл бұрын
Чел, это программа, которая выдаст тебе ответ за 5 минут, причем шанс ошибки и человеческого фактора буквально в пяти позициях. В экселе же в 21 задании таблица не помещается на экран и шанс ошибки там куда выше, чем с этими пятью позициями
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
а кто сказал, что я чего-то не понимаю? Перепроверять себя всеми способами, это сколько времени нужно отдать, 15-20 минут? Достаточно написать программу и перепроверить себя руками. Если у вас получается решать экселем - супер. Но рекомендовать его как основной способ решения - никогда не буду
@slammmedd
@slammmedd 2 ай бұрын
практически ни черта не понял. то ли я тупой, то ли задача мудрёное недоразумение
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 ай бұрын
попробуй посмотреть другое объяснение🤔 их много на ютубе
@lewnd
@lewnd 2 жыл бұрын
не понял только когда использовать any а когда использовать all?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
почти всегда будет так if ... return all([...]) return any ([...]) когда был неудачных ход, то везде any
@lewnd
@lewnd 2 жыл бұрын
@@user-zi8lj4bv8y понял
@МаксимЧ-у1ъ
@МаксимЧ-у1ъ 2 жыл бұрын
я один ничего не понял... any all что это такое
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Если вы сдаете на python - почитайте в интернете, как работают эти функции. Конкретно в данном номере мы их используем так: any - ищем хотя бы один выигрышный ход игрока, если такой ход найдется - значит стратегия для нас выигрышная all - на все ходы противника, если хотя бы один False - стратегия проигрышная через any ходит игрок, который должен победить по условию, через all - противник. Ход игрока, сделавшего последний ход проверяется в if через остаток
@МаксимЧ-у1ъ
@МаксимЧ-у1ъ 2 жыл бұрын
@@user-zi8lj4bv8y Спасибо я разобрался с кодом, просто не знал "Трехместное выражение if/else" сейчас разбираюсь в коде, КЛассно придумано! Долго создавали алгоритм?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
@@МаксимЧ-у1ъ недолго) как сразу компьютерный егэ появился, немного адаптировал его только в процессе работы с учениками. Это базовый алгоритм через рекурсию, думаю, если полазить в интернетах, то много у кого будет похожий подход
@frame1256
@frame1256 2 жыл бұрын
за день наботаю ?
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
вполне реально)
@frame1256
@frame1256 2 жыл бұрын
@@user-zi8lj4bv8y Хорошо, буду отписываться с каждым результатом) Мне вот было бы интересно посмотреть у вас программки для 16 и 23 задания
@h3nkyy
@h3nkyy 2 жыл бұрын
Не понятный видос от слова совсем. Народ не забивайте мозги такими объяснениями. Эти номера руками в два счёта делать.
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Спасибо за мнение. Такими объяснениями люди забивают себе мозги и стабильно решают задание на три балла, а делать "перебор руками в два счета", учитывая сколько времени вы на это потеряете, крайне сомнительная затея. Для перепроверки - если только. Ну и плюс человеческий фактор никто не отменял при ручном анализе. Успехов на экзамене
@user-zi8lj4bv8y
@user-zi8lj4bv8y 2 жыл бұрын
Ну и в любом случае, если я для вас непонятно объяснил, найдите другой способ, но на пк. Зачем рисковать на экзамене? Лучше значения из автоматизированного решения уже проверить руками
@NastushaAir
@NastushaAir 9 ай бұрын
Спасибо большое, очень помогли 🙏💕
@user-zi8lj4bv8y
@user-zi8lj4bv8y 9 ай бұрын
круто, рад, что помогло) есть еще бесплатные занятия, если будет актуально, то посмотри в тг
@ШиманскийСтанислав
@ШиманскийСтанислав 2 жыл бұрын
Спасибо!
Щелчок 2023 | Задание №19-21. Руками (Обзор задачи. Шаблон решения)
34:38
Информатика ЕГЭ - Школково
Рет қаралды 9 М.
Новый уровень твоей сосиски
00:33
Кушать Хочу
Рет қаралды 4,3 МЛН
Expected Ending?
00:45
ISSEI / いっせい
Рет қаралды 4,4 МЛН
POV: Your kids ask to play the claw machine
00:20
Hungry FAM
Рет қаралды 17 МЛН
ВЕСЬ ПИТОН ДЛЯ ЕГЭ ЗА 50 МИНУТ / Все основы программирования
53:00
СТАТГРАД от 27.04.2022 | 27 апреля| 1-23| Информатика ЕГЭ 2022
1:32:20
Дмитрий Паршиков ЕГЭ Информатика
Рет қаралды 6 М.
7  ПАРАДОКСОВ БЕСКОНЕЧНОСТИ
36:02
Mathin
Рет қаралды 768 М.
Новый уровень твоей сосиски
00:33
Кушать Хочу
Рет қаралды 4,3 МЛН