Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Игра со спичками


Автор: gypehot19 4.6.2016, 08:25
Имеем 100 спичек и два игрока. Игроки ходят поочередно, каждый за один ход может взять не менее одной и не более десяти спичек. Проигрывает взявший последнюю спичку
Задача такая: если компьютер начинает первым - выиграть его невозможно (сам алгоритм организован, но вот эта основная задача совсем-совсем не получается)

у меня получается наоборот - выигрывает только второй пользователь (комп берет 1 спичку, а после каждый ход пользователя дополняет до 11 - а под конец все это дело сбивается вникуда)
лопатила гугл, везде обратная задача

кто может подсказать выигрышную стратегию? курсач сдавать через две недели smile 
буду премного благодарна

Автор: Lipetsk 4.6.2016, 09:29
если осталось 11 спичек или меньше, то берём все кроме одной и выигрываем
т.е. после хода победителя должно оставаться k*11+1 спичка

Добавлено @ 09:31
и получается, что для 100 спичек выигрывает второй

Автор: gypehot19 4.6.2016, 18:47
Мне нужно именно так, чтобы выигрывал ПЕРВЫЙ (требование преподавателя)
а у меня стратегия получилась только для ВТОРОГО выигрывающего

Автор: Lipetsk 4.6.2016, 19:35
тогда число спичек не должно быть k*11+1
поменяйте его

Автор: gypehot19 5.6.2016, 08:16
Хорошо, спасибо! Будем выяснять...

Автор: gypehot19 5.6.2016, 11:22
Хорошо, спасибо! Будем выяснять...

Автор: Владимир88888 5.6.2016, 14:18
как успехи?

Автор: gypehot19 5.6.2016, 20:36
Все-таки преподаватель сказал, что я права и выигрывать должен второй))
тогда у меня все правильно...
зря только пыталась переделать smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)