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

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

20.02.2012, 14:06. Показов 6221. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru