четверг, 20 января 2011 г.

Игра со спичками (вариант 2)

Изменим немного правила этой игры.

Пусть на столе 25 спичек. Можно за один раз брать 1, 3 или 6 спичек. Выигрывает забравший последнюю.

Рассуждаем:
  1. Если на столе 1, 3 или 6 спичек понятно, что выигрывает игрок, который ходит.
  2. Если 2 или 4, то игрок берет 1 или 3 спички, остается 3 или одна соответственно, значит он в проигрыше в соответствии с п.1.
  3. Если 5 спичек, то взяв 1 или 3 спички, передадим ход другому игроку с 4 или 2 спичками на столе  соответственно. И из п.2 следует, что ход первому игроку вернется с 1 или 3 спичками и он выиграет.
  4. Итого если на столе 1, 3, 5 или 6 спичек, то позиция выигрышная для игрока, который ходит, если 2 или 4, то - проигрышная.
Последовательно продолжив эти рассуждения, можно построить таблицу, обозначающую при каком количестве спичек позиция выигрышная, а при каком - проигрышная.



Так на картинке видно, что из позиции в 7 спичек игрок может прийти к позиции в 6, 4 или 1 спичку.

При этом при переходе к 6 или 1 спичке мы другого игрока приведем к выигрышу, но при переходе к 4 спичкам мы  приведем его к 100% проигрышу, а значит эта позиция выигрышная для того, кто ходит.

А чтобы  в Excel построить таблицу, будем в колонке "B" писать количество спичек, если позиция выигрышная и ноль - если проигрышная.

Присвоим диапазону "E2:G2" имя "ходы".

Введем в ячейку "B1" число 1, а в ячейку "B2" следующую формулу:

=ЕСЛИ(ЕНД(ПОИСКПОЗ(A4;ходы;0));ЕСЛИ(СУММ(($B$3:B3=A4-ходы)*1)<СУММ((ЗНАК(A4-ходы)=1)*1);A4;0);A4)

Формула содержит массивы, поэтому завершаем ввод через CTRL + SHIFT + ENTER

Работает формула так:
  1. Проверяет совпадает ли текущее положение (A4) с каким-либо вариантом хода (1, 3 или 6).
  2. Если совпадает, то записывает его (A4) в ячейку.
  3. Если не совпадает, то проверяем сколько выигрышных вариантов среди всех, к которым мы переходим (A4 - ходы это те варианты к которым переходим).
  4. Если их меньше чем всех возможных, то пишем записываем значение из A4.
  5. Если столько же, то пишем 0.
Таким образом если в столбце B записан ноль, то позиция проигрышная.

Копируем вниз. В итоге 


Итак, если на столе 25 спичек, то выигрывает игрок, который ходит. 

Чтобы посмотреть по шагам как работает формула становимся на нужную ячейку и заходим Меню - Сервис - Зависимости формул - Вычислить формулу

Вдохновила на пост статья "Вариации на тему игры Баше".

Похожие по тематике посты - еще почитать:

1 комментарий:

  1. >Вдохновила на пост статья "Вариации на тему игры Баше".

    Приятно :)

    ОтветитьУдалить