М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
ДочьЛюци
ДочьЛюци
09.06.2022 05:58 •  Информатика

Напишите программу, которая случайным образом выбирает дежурных: выводит два случайных числа на отрезке [1; N], где N — количество учеников вашего класса. Какая проблема может при этом возникнуть?

👇
Открыть все ответы
Ответ:

Условие не очень корректно: добавлять целое число не очень интересно, например, добавлениями отрицательных чисел второй игрок может всегда оставлять после своего хода в сумме 0. Буду считать, что речь идёт о натуральных числах.

Первый игрок должен на первом ходу добавить 1, а затем после каждого своего хода оставлять число, которое даёт остаток 1 при делении на 11. Если сумма перед ходом первого игрока превысит 89, он сможет добавить недостающее до 100 и выиграть.

Эта стратегия корректна: оставлять число, дающее остаток 1 при делении на 11, легко: если второй говорит число x, первый должен говорить 11 - x. При этом второй победить не сможет: после того, как первый оставит сумму 89, после хода второго останется от 90 до 99, и следующий ход первого станет победным.

4,5(44 оценок)
Ответ:
Fenix0x
Fenix0x
09.06.2022
Одна из простейших игр со стратегией, разновидность игры "Ним".
Игра под названием "Кто первый скажет "Сто"?"
Чтобы первым достичь 100, надо заставить противника при его последнем ходе назвать число 90 до 99 - прибавив к этому числу от 10 до 1, мы выигрываем. Следовательно, при своем предпоследнем ходе, мы должны назвать число 89=100-(10+1). Перед этим надо назвать числа 89-11=78, 67, 56, 45, 34, 23, 12, 1.
Начальное число 1 можно найти сразу как остаток от целочисленного деления 100 на 11. А далее делать шаги по указанным цифрам. Для этого, если противник прибавляет некое m, надо прибавлять 11-m. Или, ничего не считая, называть числа 1, 11+1=12, 12+11=32, .. 87 и 100.

В общем виде, если требуется первым назвать число N, используя числа от 1 до m, начальное число определяем, как остаток деления N на (m+1). А далее, когда противник прибавляет некое k, мы прибавляем m+1-k.
4,6(66 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ