Тёмный

Задачи 19-21. Теория игр. ЕГЭ по информатике 

Информатик БУ
Подписаться 125 тыс.
Просмотров 52 тыс.
50% 1

Решение стандартных заданий на теорию игр. Задачи 19-21.
-----
Хочешь записать на курс от информатика БУ?
Пиши сюда 👉 vk.me/inf_bu
Ответим на все вопросы, проконсультируем и поможем записаться
------
Полезные каналы:
Школково
/ @shkolkovo
Алексей Богданов (Alex Danov):
/ @alexdanov
Евгений Джобс
/ @evgenijjobs
Алексей Кабанов
/ axelofan2010
Каролина Виноградова
/ @kege_infa_100
Руслан Сноуден
/ @clevercat5348
Канал Павла Маслова: / @pavelmaslov4835
Канал Проф ЕГЭ: / @prof_ege
Соточка по русскому - / @sotochka
IRON PROGRAMMER: / @ironprogrammer
Школа музыки STUDIO17: / @studio-dl9yx
------
Задачи взяты с сайта К.Ю. Полякова: kpolyakov.spb.r...

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

 

5 окт 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 116   
@infbu
@infbu 3 года назад
К сожалению, для большинства учеников такое решение будет непонятным и сложным:( Сорри если так. И еще, на сайте К.Ю. Полякова вы можете найти другие реализации этого решения: kpolyakov.spb.ru/school/ege.htm
@efimpuzhalov8287
@efimpuzhalov8287 3 года назад
Спасибо большое за видео, смотрел на ускорении 1,5 и абсолютно всё понял. Так что не переживайте, было очень полезно, объяснили максимально доступно. Я так скажу, это слишком гениально чтобы так решать егэ, просто мозговое + компьютерное читерство.
@vladimirx2587
@vladimirx2587 3 года назад
Спасибо, всё понял
@Кирилл-п6ж3э
@Кирилл-п6ж3э 3 года назад
@@toadharvard таблицей слишком долго делать две кучи, прога быстрее, нужно один раз это понять и всегда брать 3 балла на ТИ
@Кирилл-п6ж3э
@Кирилл-п6ж3э 3 года назад
@@toadharvard ну кому как, у меня прогу минуты две занимает написать и ещё минуту проверить её
@Инфобезник
@Инфобезник 3 года назад
@@toadharvard как вы делаете это в таблице? напишите алгоритм, пожалуйста?
@Mr_Kaktusik
@Mr_Kaktusik 3 года назад
Я: внимательно слушаю бу, пытаюсь понять как решить это задание Мой мозг: кто куда а я гулять
@acidloveking
@acidloveking 3 года назад
на самом деле довольно просто, я все спокойно понял, огромное спасибо бу, что стараетесь для нас)
@khasanovi.1415
@khasanovi.1415 3 года назад
Наконец, кто-то взялся разжевать "Теорию Игр" с помощью программ. Большое человеческое спасибо.
@efimpuzhalov8287
@efimpuzhalov8287 3 года назад
БУ: делает часовое видео по теории игр и его решению исключительно через программирование. Также БУ, приступивший к реальному решению задачи из ДЕМО ЕГЭ: так решаем руками, можно конечно запрогать, но ЗАЧЕМ. Я: 🗿 54:16
@infbu
@infbu 3 года назад
Вы просили прогу - вы получили прогу
@efimpuzhalov8287
@efimpuzhalov8287 3 года назад
@@infbu Ненене, всё классно, просто момент забавный.
@ДенисЧугунов-л3б
@ДенисЧугунов-л3б 3 года назад
@@infbu Просим без проги тоже!!
@fedorgurov4694
@fedorgurov4694 3 года назад
@@infbu можете на питоне
@АртёмСмирнов-л1л
@АртёмСмирнов-л1л 3 года назад
@@fedorgurov4694 так переведи в чем проблема?
@Шамаич-з9ю
@Шамаич-з9ю 3 года назад
Программа на питоне! Большинство уточнений написал в комментариях в программе. w=100 # Кол-во строк,столбцов в таблице a = [[0]*w for i in range(w)] # Создание пустой таблицы for i in range(1,w): # Проходим через все ячейки таблицы for j in range(1,w): # В скобке находится число '1', так как в питоне индексация начинается с '0', поэтому для удобства мы пропускаем "нулевые" ячейки if i*2+j>=77 or i+2*j>=77: # Условие для выигрыша Пети первым ходом a[i][j]=1 # Петя выигрывает первым ходом else: a[i][j]=0 # Петя проигрывает первым ходом for k in range(100): # Повторение проходов for i in range(1,w): for j in range(1,w): # Проход таблицы if a[i][j]==0: # Далее идут условия как в видео if a[i+1][j]>0 and a[i][j+1]>0 and a[i*2][j]>0 and a[i][j*2]>0: a[i][j] = max(a[i+1][j],a[i][j+1],a[i*2][j],a[i][j*2])*-1 elif a[i+1][j]
@Beloozer
@Beloozer 3 года назад
если делаешь на питоне, лучше делай через рекурсию
@shanewalsch
@shanewalsch 2 года назад
@@Beloozer нет
@shanewalsch
@shanewalsch 2 года назад
@@Beloozer в чем смысл через рекурсию делать?
@DANC-HiK
@DANC-HiK 3 года назад
Чел, спасибо тебе большое, ты прекрасно всё объяснил с первого раза, я до этого не пытался решить это задание, но теперь я прекрасно понимаю структуру теории игр, и возможное их решение при помощи языка программирования. Ещё раз за всё спасибо
@snow4dv
@snow4dv 3 года назад
Отличное объяснение, спасибо! Потратив час на полное осознание алгоритма, решаю ТИ машинально за 5 минут, что в разы быстрее, чем решать табличкой.
@I_am_GMO
@I_am_GMO 3 года назад
Спасибо огромное! Читал на сайте Полякова это решение, но ничего не смог понять, но вы объяснили. Всё понял с первого раза.
@darsi8304
@darsi8304 3 года назад
12:26 вручную мы прописываем a[6]=2 , но программа, которая написана в видео, присвоила бы a[6]=3 т.к. выбрала бы по такому принципу: abs(min(a[6+2=8]=-2, a[6*2=12]=-1)))+1 = 3 , поменять местами abs с min или же вместо abs написать *-1 не решило бы эту проблему, компьютер выбирал бы не верно среди отрицательных чисел, как и говорится на 15:46, такой вариант был бы не верным при оптимальной игре всех игроков. Всё решается тем, что компьютер прописывает это всё постепенно, и 2 пропишут раньше 3 или -2 и по итогу всё будет верно, как на отрывке с 28:19.
@aston2617
@aston2617 3 года назад
Очень ждал данное видео! Решать задачи на бумажке иногда быстрее, но прогать нравится больше, так как шанс ошибки куда меньше... )
@randompchel
@randompchel 3 года назад
наоборот
@darya.2002
@darya.2002 3 года назад
Прогать интереснее,но допустить ошибку как раз таки проще,на бумаге надёжнее
@nastyashel4669
@nastyashel4669 2 года назад
Спасибо Вам большое! НАКОНЕЦ поняла наглядно что такое выигрышная и проигрышная позиции!
@ishimura19
@ishimura19 3 года назад
Спасибо за труд! Не с первого раза, но понял. Надеюсь это ускорит решение сразу трех задач. Еще раз спасибо!
@thebeachbag9514
@thebeachbag9514 3 года назад
Спасибо огромное БУ за пояснение :) Действительно проще закодить данный тип заданий (стратегия) и не париться с ручным решением. Структура кода ясна)
@ДмитрийСергиенко-б7ц
Та нет, решить на бумаге тоже очень просто
@thebeachbag9514
@thebeachbag9514 3 года назад
@@ДмитрийСергиенко-б7ц Да, но так лень :) Я лучше закодю и пойду дальше)
@tvoi_advakat2092
@tvoi_advakat2092 3 года назад
Хотелось бы посмотреть решение через прогу в остальных заданиях
@firefire8605
@firefire8605 3 года назад
Спасибо за видео и за идею, раньше проходил курсы на степе по программированию на питоне, всё понял с первого раза.
@ksdjsdjfh6826
@ksdjsdjfh6826 3 года назад
Все понятно, спасибо! Очень удобно смотреть вас в формате видео
@ВадимОнофрей-ь9ы
@ВадимОнофрей-ь9ы 3 года назад
бу, зачет, но у меня мозг закипел от этого решения, хотелось бы посмотреть решение через exel
@disconnect-forever
@disconnect-forever 3 года назад
Огромное спасибо, БУ, было очень полезно. В самом крайнем случае можно просто запомнить код и воспроизвести его на ЕГЭ.
@arintator9182
@arintator9182 3 года назад
А если беды с памятью?) O_O. Я вот могу формулы тригонометрии по сотни раз вывести, понимать их и все равно забывать :(.
@ПолинаМарусина-в8у
Спасибо огромное! Очень интересно и всё понятно! Жаль кода файликом нет и жаль не на питоне...
@blurryface5340
@blurryface5340 3 года назад
Спасибо большое 😎 пришел закрепить игры, ребятам с курса привет!)
@mate_lr
@mate_lr 3 года назад
Есть ещё способ решения через таблицу в экселе. Алексей Кабанов у себя на канале разбирал
@byga8196
@byga8196 3 года назад
Ты через excel умеешь решать?
@mate_lr
@mate_lr 3 года назад
@@byga8196 не особо, я пока мало практиковал задания на теорию игр
@ИоаннИщенко-р4о
@ИоаннИщенко-р4о 3 года назад
59:43 - понял всё с первого раза (опыт программирования просто довольно большой)
@PrivacyEnjoyer
@PrivacyEnjoyer 3 года назад
Спасибо большое! Всё очень понятно! Наконец-то буду прогать эту жесть!
@MaksimX-e7d
@MaksimX-e7d 3 года назад
Только недавно искал твои стримы прошлого года по теории игр)
@drag3652
@drag3652 3 года назад
Спасибо большое! Очень хороший метод
@Психкоторыйпишетстих-с6и
На теле жир, а в горле ком Опять не сходится рубаха По ходу соль всей жизни в том Что эта жизнь совсем не сахар
@annad2900
@annad2900 2 года назад
Почему, когда мы делаем присваивание -1 (места, из которых Ваня выиграет 1 ходом), то берем max из всех ячееек, куда мы придём*-1? Непонятно
@wiggermusic6252
@wiggermusic6252 3 года назад
на python необходимо делать фильтрацию значений!!! По факту чтобы найти 2ой 3ий ход нам нужно вывести максимальное значение из отрицательных. Это легко сделать с функцией filter и лямда функцией. Пример: # array - словарь, ключами которого являются tuple из значений первой и второй колонки: # reversed - функция которая разворачивает список, начиная перечислять элементы с конца for i, j in reversed(array): # В данном случае будут перечислятся ключи словаря. Эквивалент: array.keys() if array[(i, j)] == 0: output = [array[(i*2, j)], array[(i + 1, j)], array[(i, j*2)], array[(i, j + 1)]] if array[(i*2, j)] > 0 and array[(i + 1, j)] > 0 and array[(i, j*2)] > 0 and array[(i, j + 1)] > 0: array[(i, j)] = max(output) * -1 else: array[(i, j)] = max(filter(lambda u: u < 0, output))*-1 + 1
@wiggermusic6252
@wiggermusic6252 3 года назад
P. S. Зачем разворачивать список? Чтобы лишний раз не прогонять цикл по кругу, лучше сразу начать обрабатывать его с конца
@wiggermusic6252
@wiggermusic6252 3 года назад
P. S. Что такое лямда-функции? Простыми словами - укороченные функции. Также могут быть заменены на обычные. К примеру, эквивалентом той лямда функции, которую я написал будет такая обычная функция: def func (n): return n < 0 Но тогда строка с фильтром будет выглядеть примерно так: array[(i, j)] = max(filter(func, output))*-1 + 1 Саму же функцию можете вынести куда угодно, например в начало кода
@ligecss1928
@ligecss1928 3 года назад
какой-то трындец, а не код. Почему у всех питонистов такая мания всё совать в одну строку, чтобы потом в этом никто не мог разобраться? Так ведь код совершенно нечитаемым становится...
@felicxo
@felicxo 3 года назад
@@ligecss1928 Вы еще в сообществе хаскелистов не были. Код хороший, одобряю
@ligecss1928
@ligecss1928 3 года назад
@@felicxo хех
@dodo-dn3kv
@dodo-dn3kv 3 года назад
За заставку отдельный лайк
@ЕвгенияЛинкевич-ы6ь
Спасибо огромнейшее) Всё понятно
@pchel684
@pchel684 3 года назад
Cпасибо большое
@pichi228
@pichi228 3 года назад
пришлось посмотреть дважды, но наконец-то разобралась как прогать тигрят)
@НатальяФедотова-ы2з
Спасибо! Очень полезное видео.
@АртёмКраус-ъ1ф
@АртёмКраус-ъ1ф 3 года назад
Спасибо за видео, всё понял
@hkgman4715
@hkgman4715 3 года назад
Спасибо, что выполнил мою просьбу👊
@glebtimofeev3963
@glebtimofeev3963 3 года назад
Все понятно, спасибо. Будут ли еще разборы задач по ТИ этим способом?
@ДмитрийБатунин-р6н
56:18, А почему не при S равной 68, ведь Петя может сделать глупый ход, прибавив к первой куче( равной 7) единицу, будет 68+8=76 < 77
@Gregory.420
@Gregory.420 3 года назад
Там, вроде, написано "найти минимальное"
@aguyfromtheinternet865
@aguyfromtheinternet865 3 года назад
Если в задаче дано условие, что количество камней в куче делят на 2 или вычитают 1, и если число нечетное, оставляют большую часть ( *прим: (6,9) -> (6, 5)* ), то как поступить в программе?
@Apollorina
@Apollorina 3 года назад
Спасибо большое!
@ПростоЯ-щ3ю
@ПростоЯ-щ3ю 3 года назад
Отдельный лайк за превью👍👍👍
@mr.twinkle529
@mr.twinkle529 3 года назад
Спасибо, Бу, я хоть что-то а понял!)
@lesiapalch1275
@lesiapalch1275 3 года назад
Можешь, пожалуйста, объяснить как писать эти программы на питоне?
@КЛАУДАМ_НАПРОКАЛО
Тоже самое,только синтаксис измени
@wiggermusic6252
@wiggermusic6252 3 года назад
Посмотри мой комментарий, там постарался все подробно изложить
@GiguJio
@GiguJio 3 года назад
Буду пробовать ваш метод, екселем у меня плохо получается. Мы не ищем легких путей, мы идем в лоб и на таран 😅
@Defoler
@Defoler 3 года назад
Спасибо за видео. Правда, я не понял, как массив может быть меньше нуля, объясните пожалуйста.
@ИринаБочарова-я2ф
@ИринаБочарова-я2ф 3 года назад
Спасибо большое
@sharkpl9763
@sharkpl9763 3 года назад
спасибо
@АлексейМастер-з2о
@АлексейМастер-з2о 3 года назад
Сначала лайк Затем просмотр
@ligecss1928
@ligecss1928 3 года назад
"Важный момент, я надеюсь что вы знаете что такое массивы, циклы и всё на свете..." - убило просто! xD
@englux
@englux 3 года назад
В первой задаче [12;24] должно быть
@resusfactor_2286
@resusfactor_2286 3 года назад
Нежданчик
@R4xcy
@R4xcy 3 года назад
Разве не нужно рассматривать варианты, когда кто-либо добавляет камни в первую (не S) кучу?
@Ziziiiiiiii333
@Ziziiiiiiii333 3 года назад
Здравствуйте! А можете, пожалуйста, объяснить , почему в задаче с двумя кучками вы считали выигрышную стратегию для пети с учётом того, что в первой куче было и 2, и 3, и 4 и тд камней, хотя по условию сказано, что там только один камень?
@annad2900
@annad2900 2 года назад
Так таблица отражает все ходы. Да, изначально в первой куче был 1 камень, но с каждым ходом это кол-во увеличивается, поэтому и приходится рассматривать дальнейшие случаи, когда в куче уже 2, 3 и т.д. камней
@jonspeen898
@jonspeen898 3 года назад
Страшна Вырубай ! Ох это Программирование в Теории Игр
@filamorteam7148
@filamorteam7148 3 года назад
Ребят , хелппп, где учить питон? С чего начинать?
@reoramizu6452
@reoramizu6452 3 года назад
мне тоже нужна такая помощь
@user-hp5iu7so2c
@user-hp5iu7so2c 3 года назад
Вопрос по задаче с одной кучей: a[6] программно получается=2, а фактически a[8]=-2 или a[12]=-1. Abs(min(-2,-1))+1=3, а программа выдаёт=2. Что-то не пойму почему так?
@darsi8304
@darsi8304 3 года назад
странно, abs в приоритете над min, хоть и проставлены скобки? эта проблема была у вас на Паскале?
@incrazyble8584
@incrazyble8584 2 года назад
@@darsi8304 во время одной из итераций a[12] уже равно -1, а a[8] = 0, функция возвращает -1 как минимальное
@root924
@root924 3 года назад
Класс👍
@akeannyshka8148
@akeannyshka8148 3 года назад
Не, все прекрасно. Спасибо!
@firefire8605
@firefire8605 3 года назад
Кстати, можно и рекурсивно решать
@AzriUltimate
@AzriUltimate 3 года назад
37:40 таблицу с (10:10) по (19:19) можно не рассматривать.
@serega1009
@serega1009 3 года назад
29:06
@hitman8102
@hitman8102 3 года назад
Можно ли использовать компилятор для всех заданий ? Если да то где об этом можно прочитать
@filamorteam7148
@filamorteam7148 3 года назад
Где язык програмирования учишь?
@hitman8102
@hitman8102 3 года назад
@@filamorteam7148 Я давно выучил , просто ходил на курсы по разным языкам
@lofi1724
@lofi1724 3 года назад
а как модуль "abc" звменить?
@VV-rp1yk
@VV-rp1yk 3 года назад
А решение для 2 куч будет?
@AzriUltimate
@AzriUltimate 3 года назад
**Мозг покинул чат**
@ligecss1928
@ligecss1928 3 года назад
вопрос по паю, так сказать: Вот, по идее, аналогичный код на питоне: myList = list() for i in range(1, 25): myList.append(i) for i in myList: if (i * 2) >= 25: myList[i] = 1 else: myList[i] = 0 А вывод массива странный: [0, 0, 3, 0, 5, 0, 7, 0, 9, 0, 11, 0, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1] Должен ведь всё обнулить в своей начальной части, а там тройка откуда-то появилась... В чём проблема?
@ligecss1928
@ligecss1928 3 года назад
Решил проблему, вот код, если у кого-то возникнет вопрос: myList = list() for i in range(1, 25): if i * 2 >= 25: myList.append(1) else: myList.append(0) print(myList)
@АлексейГасюк-р9щ
@АлексейГасюк-р9щ 3 года назад
Не знаю кому, не знаю зачем, но вот программа из видео на c# using System; class Program { static void Main(string[] args) { int[] arrayOfS = new int[24]; for (int i = 1; i < 25; i++) { if (i * 2 >= 25) arrayOfS[i - 1] = 1; else arrayOfS[i - 1] = 0; } for (int j = 0; j < 6; j++) { for (int i = 1; i < 25; i++) { if (arrayOfS[i - 1] == 0) { if (arrayOfS[i + 2 - 1] > 0 && arrayOfS[i * 2 - 1] > 0) { arrayOfS[i - 1] = Math.Max(arrayOfS[i + 2 - 1], arrayOfS[i * 2 - 1]) * -1; } else if (arrayOfS[i + 2 - 1] < 0 || arrayOfS[i * 2 - 1] < 0) { arrayOfS[i - 1] = Math.Abs(Math.Min(arrayOfS[i + 2 - 1], arrayOfS[i * 2 - 1])) + 1; } } } } foreach (var s in arrayOfS) Console.Write($"{s} "); } }
@НикитаДанько-ы2б
@НикитаДанько-ы2б 3 года назад
пила на заставке - сотка в кармане
@АфганАзимов-ы3х
@АфганАзимов-ы3х 3 года назад
"Индекс находился вне границ массива", что делать?
@felicxo
@felicxo 3 года назад
Промахнулись с количеством итераций или с длиной массива
@MarkChlenov
@MarkChlenov 3 года назад
Может для учеников не очень понятно, но вот репетиторам польза большая
@АфганАзимов-ы3х
@АфганАзимов-ы3х 3 года назад
Сюрприз!!!!
@АлександрСухарев-ф8ш
Ничего не понял;(
@irinamladova
@irinamladova 2 года назад
Тоже подготовила разбор по стратегии через Excel. Буду рада, если окажется полезно:)
@arthurkarimullin8476
@arthurkarimullin8476 3 года назад
29:12 Осторожно скример....
@Женя-и4р4ц
@Женя-и4р4ц 3 года назад
Огромное спасибо!
@LediRoxi
@LediRoxi 3 года назад
Спасибо.
Далее
ЗАКОНЫ АЛГЕБРЫ ЛОГИКИ
10:08
Просмотров 242 тыс.