Форум » Теория игр » Решение задач 19-21 в Excel перебором и анализ в сводной таблице » Ответить

Решение задач 19-21 в Excel перебором и анализ в сводной таблице

sergvch: Предлагаю универсальный(громоздкий) способ решать задачи 19-21 в Excel составляя полную базу возможных исходов и анализируя потом в сводных таблицах. Подходит для 1 , двух и т.д куч, любые виды манипуляций с камнями. На примере № 2411 файл Excel(с макросом-пользовательская функция)https://disk.yandex.ru/i/h3oYe2aFeJ-EUQ (№ 2411) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч два камня или увеличить количество камней в куче в два раза. Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 75. Победителем считается игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет 75 или больше камней. В начальный момент в первой куче было 9 камней, во второй куче – S камней, 1 ≤ S ≤ 65. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Ответьте на следующие вопросы:   Вопрос 1. Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение S, при котором это возможно.   Вопрос 2. Укажите минимальное значение S, при котором у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.   Вопрос 3. Найдите два значения S, при которых у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и при этом у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Найденные значения запишите в ответе в порядке возрастания. Существует 4 типа ходов) Ход1 -добавить в 1 кучу 2камня Ход2 -увеличить в 2 раза количество камней в в 1 куче Ход3 -добавить в 2 кучу 2камня Ход4 -увеличить в 2 раза количество камней в в 2 куче Alt-F11 добавляем в Module1 пользовательскую функцию Public Function kucha2(s, k1, k2, k3, k4) k1-ход Пети 1 k2-ход Вани 1 k3-ход Пети 2 k4-ход Вани2 П1-победа Пети на 1 ходе,В1-победа Вани на 1 ходе,П2-победа Пети на 2 ходе,В2-победа Вани на 2 ходе No-никто не победил за 4 хода Public Function kucha2(s, k1, k2, k3, k4) As String s1 = 9 s2 = s If k1 = 1 Then s1 = s1 + 2 ElseIf k1 = 2 Then s1 = s1 * 2 ElseIf k1 = 3 Then s2 = s2 + 2 Else s2 = s2 * 2 End If If s1 + s2 > 74 Then kucha2 = "П1" Exit Function Else If k2 = 1 Then s1 = s1 + 2 ElseIf k2 = 2 Then s1 = s1 * 2 ElseIf k2 = 3 Then s2 = s2 + 2 Else s2 = s2 * 2 End If If s1 + s2 > 74 Then kucha2 = "В1" Exit Function Else If k3 = 1 Then s1 = s1 + 2 ElseIf k3 = 2 Then s1 = s1 * 2 ElseIf k3 = 3 Then s2 = s2 + 2 Else s2 = s2 * 2 End If If s1 + s2 > 74 Then kucha2 = "П2" Exit Function Else If k4 = 1 Then s1 = s1 + 2 ElseIf k4 = 2 Then s1 = s1 * 2 ElseIf k4 = 3 Then s2 = s2 + 2 Else s2 = s2 * 2 End If If s1 + s2 > 74 Then kucha2 = "В2" Exit Function Else kucha2 = "NO" End If End If End If End If End Function Таблица возможных исходов -Вкладка база все варианты k1,k2,k3,k4 для разумного количества s от 1 до 40 на каждое S блок формул 4*4*4*4=256 всего таблица 40*256=10240 строк Колонка рез с функцией kucha2 показывает кто выиграл при данной комбинации ходов, загоняем все в сводную таблицу В поле фильтра сводной таблицы добавим столбец RES, поле столбцов S, ходы Пет1, Ван1, Пет2, Ван2 добавляем в поле строк в количестве необходимом для анализа задания Последнее поле В2 добавим в Поле значений сводной таблицы, чтобы смотреть есть ли решения   Вопрос 1. Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение S, при котором это возможно. Фильтр сводной В1. Поле колонок сводной таблицы Пет1 и Ван1, решения появляются с S=17 (вкладка 1)   Вопрос 2. Укажите минимальное значение S, при котором у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Фильтр П2. Поле строк В1. Есть решения при любом ходе Вани 1(k1,k2,k3,k4) при S>=16 (вкладка2)   Вопрос 3. Найдите два значения S, при которых у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и при этом у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Найденные значения запишите в ответе в порядке возрастания. Фильтр В1и В2, Поля строк Пет1,Ван1,Пет2. Для любого хода Пет1 и Пет2 (k1,k2,k3,k4) существует ход Ван2 с решением. Те в сводной таблице должны быть непрерывные столбики решений Пет2 (k1,k2,k3,k4) напротив каждого хода Пет1 . Это наблюдается для минимальных S=26 и 29

Ответов - 0



полная версия страницы