Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 16.01.2011
Сообщений: 28

Задача Простая игра

20.02.2012, 14:06. Показов 6278. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ПРОСТАЯ ИГРА.
Дед Мазай и заяц играют в очень простую игру. Перед ними огромная куча одинаковых морковок. Каждый из них во время своего хода может взять из этой кучи любое количество морковок, равное неотрицательной степени числа 2, т.е. 1, 2, 4, 8, … Начинает игру либо Дед Мазай, либо заяц. Затем игроки ходят по очереди. Тот, кто возьмет последнюю морковку, тот и выигрывает.
Требуется написать программу, которая при заданных исходных данных определяет победителя в этой игре. При этом следует учитывать, что игроки играют оптимально.

Технические требования:
Имя входного файла: INPUT.TXT
Имя выходного файла: OUTPUT.TXT
Ограничение по времени тестирования: 2 секунды на один тест.

Формат входных данных:
Входной файл INPUT.TXT содержит единственное целое число N (N10250), задающее число морковок в начале игры.

Формат выходных данных:
Выходной файл OUTPUT.TXT должен содержать в первой строке цифру «1», если выиграет тот, кто ходит первым, или цифру «2» - в противном случае. Если игру выиграл тот, кто ходил первым, то во второй строке этого файла должно содержаться минимальное число морковок, которое должен взять игрок, выполнявший ход первым, чтобы гарантировать свою победу.

Пример файлов входных и выходных данных:
INPUT.TXT OUTPUT.TXT
8 1
2

Указания к решению.
В этой игре 2 игрока делают ходы по очереди, и выигрывает тот, кто достигает некоторой намеченной в начале игры позиции. В данной игре позиция
может быть полностью охарактеризована числом оставшихся морковок, и выигрывающая позиция соответствует числу морковок, равному нулю.
Спраг и Грюнди предложили (соответственно в 1936 и 1939 годах) связывать с каждой игровой позицией неотрицательное число следующим образом:
1) выигрывающей позиции сопоставляем 0;
2) данной игровой позиции сопоставляем наименьшее неотрицательное целое, отличающееся от чисел, связанных с позициями, которые могут быть достигнуты, исходя из данной.
Образуем числа Спрага-Грюнди (SG) для этой игры:
• позиции 0 сопоставляем число 0, т.е. SG(0)=0;
• исходя из 1, можно получить 0 (поскольку мы имеем право взять одну морковку). Следовательно, SG(1) – наименьшее неотрицательное целое число, отличное от нуля, т.е. SG(1)=1;
• исходя из 2, можно получить 0 и 1. Значит SG(2) – наименьшее неотрицательное целое число, отличное от 0 и 1, т.е. SG(2)=2;
• пусть у нас имеется 3 морковки. Можно взять 1 или 2, в результате чего останутся 2 или 1 морковка, но не 0. Число SG(3) – наименьшее неотрицательное целое число, отличное от 1 и 2, т.е. SG(3) =0;
• из 4 можно получить позиции 0, 2 или 3 (если взять соответственно 4, 2 или 1 морковку). Следовательно SG(4) – это не 0 и не 2, значит SG(4)=1;
• из 5 получаем позиции 1, 3 или 4. Значит SG(5)=2.
Установим общий закон: SG(p) есть остаток от деления p на 3.
Теперь осталось выявить стратегию (кто выигрывает) и соотнести полученный алгоритм с ограничениями на входные данные (N10250).

Контрольные тесты
INPUT.TXT OUTPUT.TXT
2733591 2
10000000000000000 1
1
100000000000000002 2
452837423623687234663 1
1
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2012, 14:06
Ответы с готовыми решениями:

Простая задача, на условие
Пусть x1 = y1 = 1, xi = xi-1+yi-1/i2, yi = yi-1+xi-1/i, i=2,3,… Даны два натураль-ных числа m и n . Найти xm и yn. ...

Двумерный массивов ПРОСТАЯ ЗАДАЧА
Помогите решить задачи буду очень благодарен . Задачи: 1. В массиве, состоящий из действительных элементов, вычислить: • сумму...

Простая игра
Мне надо написать игру лабиринт, но мои способности что в C#, что в C++ очень малы. вот все на что додумался мой мозг на C# : ...

4
 Аватар для инна_
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 34
10.03.2012, 17:28
мне тоже очень нужна эта задача
1
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
10.03.2012, 22:47
Цитата Сообщение от инна_ Посмотреть сообщение
мне тоже очень нужна эта задача
нужна для чего, если не секрет?
2
 Аватар для инна_
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 34
11.03.2012, 09:43
все просто,чтобы сдать программирование
1
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
11.03.2012, 17:54
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  Str: string;
  t, i:integer;
begin  
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
  read(Str);
  t:=0;
  for i:=1 to length(Str) do
    t:=t+ord(Str[i])-ord('0');
   if (t mod 3)=0 then write('2')
   else 
   begin
   writeln('1'); write(t mod 3);
   end;
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2012, 17:54
Помогаю со студенческими работами здесь

Простая игра на С#
Добрый вечер, хочу создать простую игру чтобы понять основы: что к чему и с чем это едят. Не подскажите где можно будет прочитать материал...

Простая игра 3D на C++
Здравствуйте! Я бы хотел попробовать написать простенькую 3D игру на C++. Физический движок мне не нужен, так как физики там сложной не...

Простая игра
Исходя из предыдущей темы, решил писать сам без примера и придумал вот такую штуку. Через определенное время в окне появляется на...

Простая игра
Скиньте мне в файле ворда какую то простую игру в С++. Пожалуйста:'(

Простая игра. OpenGL
Хочу научиться работать с графикой и... решил начать с игрушки вроде этих: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru