|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.09.2015, 15:12 | #1 |
Новичок
Джуниор
Регистрация: 28.09.2015
Сообщений: 2
|
Помогите написать программу (два игрока берут камни из кучки камней. - за один ход игрок может забрать из кучи от 1 до 6 камней
Саша и Миша играют в игру. Игра происходит по следующим правилам:
- изначально на столе лежит куча из N камней; - за один ход каждый игрок может забрать из кучи от 1 до 6 камней; - проигрывает тот, кто не может сделать ход (потому что куча пуста); - первой ходит Саша. Если выиграет Саша вывести "Wins Sasha" Если выиграет Миша вывести "Wins Misha" Из перечисленных чисел N выберите те, при которых Саша выиграет (при условии, что оба игрока играют оптимально). 76 70 87 63 33 69 56 15417 18806 14195 18029 15954 |
28.09.2015, 16:05 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Задачка тривиальная и многократно описанная называется НИМ. Выигрывает тот, кто сделал первый ход. Там есть особая и не особая позиция. Если делаешь ход в особую позицию, у оппонента нет выбора, он вынужден попадать в не особую. Вот и весь прикол.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
28.09.2015, 16:18 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
и я сейчас это Вам докажу на примере. на столе лежит 7 камней. Ваш ход первый. Сколько Вы возьмёте? |
|
28.09.2015, 16:41 | #4 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Все. Ваш ход? Конечно, это прикол. Но, в такой постановке у задачи только одно решение. Кто ходит первым, тот проигрывает. Я про классическую задачу. Имеется N кучь с M камнями. можно взять любое количество камней, но только из одной кучи (хоть все). Для этой постановки, алгоритм давно известен. Ещё Гарднер его описал.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 28.09.2015 в 16:49. |
28.09.2015, 16:42 | #5 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
28.09.2015, 16:43 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
28.09.2015, 16:43 | #7 |
Новичок
Джуниор
Регистрация: 28.09.2015
Сообщений: 2
|
Любое число N
Примеры написаны под задачей Как решать? Заранее благодарю Последний раз редактировалось nazerke123; 28.09.2015 в 16:45. |
28.09.2015, 16:59 | #8 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Цитата:
Если есть желание поиграть в классический НИМ, могу доказать, что при любом раскладе, я всё равно выиграю сделав первый ход, т.к. знаю алгоритм.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 28.09.2015 в 17:18. |
||
28.09.2015, 18:06 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я предположу другое
нужно брать остаток от деления на 7 если получили ноль, то "Wins Misha", иначе - "Wins Sasha" например, 76 - "Wins Sasha" 70 - "Wins Misha" 87 - "Wins Sasha" 63 - "Wins Misha" 33 - "Wins Sasha" |
28.09.2015, 18:44 | #10 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
76/7 = 10,857142857142857142857142857143 И в том и в другом случае получаем дроби. Не делится нацело. Идём от обратного. Какое из ближайших чисел делится? 12*6 = 72. Я, забираю оставшиеся 4 камня и выигрываю, что не противоречит условиям.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
У Вас есть N камней с массами W1, W2 , … WN. | Глеб2010 | Помощь студентам | 1 | 03.05.2012 15:02 |
(Классика) Куча камней сортировка НЕ пузырьком. | Sega_AS | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.04.2012 14:22 |
Задача - куча камней. | InKo1 | Общие вопросы C/C++ | 11 | 04.01.2012 18:23 |
Может ли один модем Ethernet + USB раздавать интернет на два компа? | Qosta | Операционные системы общие вопросы | 8 | 21.06.2010 21:14 |
Определить, может ли ладья за один ход перейти с одного из этих полей на другое | amki6 | Помощь студентам | 3 | 01.04.2010 17:52 |