SlideShare a Scribd company logo
1 of 26
N max_digit digit
1 При вводе числа 423 программа
выведет число 9
423
9
3
42
2
4
N max_digit digit
2 Строку max_digit := 9 заменить на max_digit := 0
Строку while N >= 10 do заменить на while N > 0 do
423
9
3
42
2
4
Инициализация заведомо
максимальным значением
Старший разряд не
обрабатывается
Неверное выделение
младшего разряда
Неправильный знак
неравенства
Неправильное
отбрасывание младшего
разряда
Неправильный вывод,
например, writeln(digit);
Внимательно читайте условие
Выполняйте ровно то, что от Вас просят
Не переписывайте программу целиком, укажите лишь неправильные
строки
Укажите явно: строка … не верна. Необходимо заменить на …
Не ищите ошибок там, где их нет
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать
целые значения от 0 до 10000 включительно. Опишите на естественном языке или
на одном из языков программирования алгоритм, позволяющий найти и вывести
максимальное значение среди трёхзначных элементов массива, не делящихся на 9.
Если в исходном массиве нет элемента, значение которого является трёхзначным
числом и при этом не кратно 9, то выведите сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых
языков программирования и естественного языка. Запрещается использовать
переменные, не описанные ниже, но разрешается не использовать некоторые из
описанных переменных.
В качестве ответа Вам необходимо привести фрагмент программы (или описание
алгоритма на естественном языке), который должен находиться на месте
многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом
случае Вы должны использовать те же самые исходные данные и переменные,
какие были предложены в условии (например, в образце, записанном на
естественном языке).
максимальное значение среди трёхзначных элементов массива, не делящихся на 9
Стандартный алгоритм
поиска максимума:
max := a[1];
for i := 2 to N do
if a[i] > max then
max := a[i];
writeln(max);
..могут принимать целые значения от 0 до 10000 включительно..
max := 99; {может быть любое, меньшее 100}
for i := 1 to N do
if (a[i] >= 100) and (a[i] <= 999)
and (a[i] mod 9 <> 0) and (a[i] > max) then
max := a[i];
if max = 99 then writeln(‘Не найдено’) else writeln(max);
Решение
Если в исходном массиве нет элемента, значение
которого является трёхзначным числом и при этом
не кратно 9, то выведите сообщение «Не найдено»
Два игрока, Петя и Ваня, играют в следующую игру. Перед
игроками лежит куча камней. Игроки ходят по очереди, первый
ход делает Петя. За один ход игрок может добавить в кучу один
или два камня или увеличить количество камней в куче в два
раза. Например, имея кучу из 15 камней, за один ход можно
получить кучу из 16, 17 или 30 камней. У каждого игрока,
чтобы делать ходы, есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче
становится не менее 27. Победителем считается игрок,
сделавший последний ход, то есть первым получивший кучу, в
которой будет 27 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 26.
Будем говорить, что игрок имеет выигрышную стратегию, если он может
выиграть при любых ходах противника. Описать стратегию игрока – значит
описать, какой ход он должен сделать в любой ситуации, которая ему может
встретиться при различной игре противника.
Выигрышная стратегия игрока А должна содержать все возможные ходы
игрока В (он может противостоять любыми способами) и только
выигрышные ходы игрока А. На любой ход игрока В должен быть
указан ровно один выигрышный ход игрока А.
X Xa1
Xb11
Xb12
Xb13
C1
C1
C2
C3
Xa21
C2
Xa22
C1
Xa23
C1
А I B I А II
+1 +2 *2
Ответ
S ≥ 14
Выигрывающий ход: увеличить количество камней в куче в два раза.
При этом камней станет 2 * S ≥ 28.
При S ≤ 13 Петя никак не получит больше 26 камней, а значит не
выиграет в один ход.
>=27
1. а) Укажите все такие значения числа S, при которых Петя может выиграть
в один ход. Обоснуйте, что найдены все нужные значения S, и укажите
выигрывающий ход для каждого указанного значения S.
Замечания
Ни в коем случае не перечислять: S = 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
Можно не указывать верхнюю границу S ≤ 26: она задана по условию
Обязательно укажите выигрывающий ход Пети
+1 +2 *2
Ответ
S ≥ 14
Выигрывающий ход: увеличить количество камней в куче в два раза.
При этом камней станет 2 * S ≥ 28.
При S ≤ 13 Петя никак не получит больше 26 камней, а значит не
выиграет в один ход.
≥ 27
1. а) Укажите все такие значения числа S, при которых Петя может выиграть
в один ход. Обоснуйте, что найдены все нужные значения S, и укажите
выигрывающий ход для каждого указанного значения S.
Замечания
Ни в коем случае не перечислять: S = 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
Можно не указывать верхнюю границу S ≤ 26: она задана по условию
Обязательно укажите выигрывающий ход Пети
S ≤ 26
S + 1 ≥ 27
S + 2 ≥ 27
S * 2 ≥ 27
S ≤ 26
S ≥ 26
S ≥ 25
S ≥ 13,5
14 ≤ S ≤ 26
Можно формализовать решение:
Укажите один выигрывающий ход Пети для всех S (не надо отдельно для 25 и 26)
+1 +2 *2
Ответ
S = 13
Выигрывающий ход: независимо от хода Пети, Ваня своим первым
ходом должен увеличить количество камней в куче в два раза.
≥ 27
1. б) Укажите такое значение S, при котором Петя не может выиграть за
один ход, но при любом ходе Пети Ваня может выиграть своим первым
ходом. Опишите выигрышную стратегию Вани.
Соображения
Исходя из п. 1а, чтобы Петя не выиграл в один ход, S должно быть меньше, чем 14
Чтобы Ваня выиграл своим первым ходом, исходя из п. 1а, после хода Пети камней
должно быть не меньше, чем 14.
Поскольку возможны ходы «+1», «+2» и «*2», единственным возможным значением
S является 13. Иначе, если S ≤ 13 (например 12), то Петя может ходом «+1» получить
количество камней не превосходящее 13 (например 13) и тогда Ваня не выиграет
своим первым ходом.
S < 14
S + 1 ≥ 14
S + 2 ≥ 14
S * 2 ≥ 14
S < 14
S ≥ 13
S ≥ 12
S ≥ 7
S = 13
Можно формализовать решение:
+1 +2 *2 ≥ 27
2. Укажите два таких значения S, при которых у Пети есть выигрышная
стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может
выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Для каждого указанного значения S опишите выигрышную стратегию Пети.
Соображения
Исходя из п. 1б, чтобы Петя выиграл своим вторым ходом, после его первого хода
камней должно быть 13.
Задача Пети – своим первым ходом привести количество камней к 13.
Возможны ходы «+1», «+2» и «*2», с помощью которых Петя будет доводить
количество камней до 13. Поэтому возможны следующие значения S:
S = 12, тогда Петя должен пойти «+1»
S = 11, тогда Петя должен пойти «+2»
Ход «*2» невозможен, поскольку нет целого числа, которое при умножении на 2 дает 13
+1 +2 *2
Ответ (вариант 1)
S = 11, S = 12
Выигрышная стратегия:
1) Первым ходом Петя должен привести количество камней к 13.
2) Вторым ходом, независимо от первого хода Вани, Петя должен
увеличить количество камней в куче в два раза.
≥ 27
2. Укажите два таких значения S, при которых у Пети есть выигрышная
стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может
выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Для каждого указанного значения S опишите выигрышную стратегию Пети.
Ответ (вариант 2)
S = 11, S = 12
Выигрышная стратегия видна из дерева игры, в котором указаны все
возможные ходы Вани и только выигрышные ходы Пети:
11
13
14
15
26
+2 +1
+2
*2
28
*2
30
*2
52
*2
П I В I П II
12
+1
+1 +2 *2 ≥ 27
2. Укажите два таких значения S, при которых у Пети есть выигрышная
стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может
выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Для каждого указанного значения S опишите выигрышную стратегию Пети.
S + 1 = 13
S + 2 = 13
S * 2 = 13
S = 12
S = 11
S = 6,5
Можно формализовать решение:
+1 +2 *2 ≥ 27
3. Укажите значение S, при котором:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым
или вторым ходом при любой игре Пети, и
– у Вани нет стратегии, которая позволит ему гарантированно выиграть
первым ходом.
Для указанного значения S опишите выигрышную стратегию Вани.
Постройте дерево всех партий, возможных при этой выигрышной стратегии
Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто
делает ход; в узлах – количество камней в куче.
Соображения
Исходя из п. 2, чтобы Ваня выиграл своим вторым ходом, после первого хода Пети
камней должно быть 11 или 12 (либо не менее 14).
Возможны ходы «+1», «+2» и «*2», после которых Петя должен попасть в указанные
выше значения. Поэтому возможно единственное значение S = 10. Тогда:
Если Петя пойдет «+1» - попадаем в условия п. 2
Если Петя пойдет «*2» - попадаем в условия п. 1а
+1 +2 *2 ≥ 27
Ответ (для п. 3)
S = 10
Выигрышная стратегия видна из дерева игры, в котором указаны все
возможные ходы Пети и только выигрышные ходы Вани:
11
13
14
15
26
+2 +1
+2
*2
28
*2
30
*2
52
*2
П I В I П II
12
+1
10
+2
+1
20 40
*2
*2
В II
Ответ
1. а) S ≥ 14.
Выигрывающий ход: увеличить количество камней в куче в два раза.
При этом камней станет 2 * S ≥ 28.
При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в
один ход.
б) S = 13
Выигрывающий ход: независимо от хода Пети, Ваня своим первым ходом
должен увеличить количество камней в куче в два раза.
2. S = 11, S = 12
Выигрышная стратегия:
1) Первым ходом Петя должен привести количество камней к 13.
2) Вторым ходом, независимо от первого хода Вани, Петя должен увеличить
количество камней в куче в два раза.
3. S = 10
Выигрышная стратегия видна из дерева игры, в котором указаны все
возможные ходы Пети и только выигрышные ходы Вани:
(изображенное дерево игры)
Ответ
1. а) S ≥ 14.
Выигрывающий ход: увеличить количество камней в куче в два раза.
При этом камней станет 2 * S ≥ 28.
При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в
один ход.
б) S = 13
Выигрывающий ход: независимо от хода Пети, Ваня своим первым ходом
должен увеличить количество камней в куче в два раза.
2. S = 11, S = 12
Выигрышная стратегия:
1) Первым ходом Петя должен привести количество камней к 13.
2) Вторым ходом, независимо от первого хода Вани, Петя должен увеличить
количество камней в куче в два раза.
3. S = 10
Выигрышная стратегия видна из дерева игры, в котором указаны все
возможные ходы Пети и только выигрышные ходы Вани:
(изображенное дерево игры)
По каналу связи передаётся последовательность положительных целых
чисел, все числа не превышают 1000. Количество чисел известно, но
может быть очень велико. Затем передаётся контрольное значение
последовательности – наибольшее число R, удовлетворяющее
следующим условиям:
1) R – произведение двух различных переданных элементов
последовательности («различные» означает, что не рассматриваются
квадраты переданных чисел; допускаются произведения различных
элементов последовательности, равных по величине);
2) R делится на 21.
Если такого числа R нет, то контрольное значение полагается равным 0.
В результате помех при передаче как сами числа, так и контрольное
значение могут быть искажены.
Напишите эффективную, в том числе по используемой памяти, программу
(укажите используемую версию языка программирования, например,
Borland Pascal 7.0), которая будет проверять правильность контрольного
значения.
Программа должна напечатать отчёт по следующей форме:
Вычисленное контрольное значение: …
Контроль пройден (или – Контроль не пройден)
Перед текстом программы кратко опишите используемый Вами алгоритм
решения.
На вход программе в первой строке подаётся количество чисел N. В
каждой из последующих N строк записано одно натуральное число, не
превышающее 1000. В последней строке записано контрольное значение.
Пример входных данных:
6
70
21
997
7
9
300
21000
Пример выходных данных для приведённого выше примера входных данных:
Вычисленное контрольное значение: 21000
Контроль пройден
Соображения
R – произведение двух различных переданных элементов последовательности
R делится на 21
N*M=21*K, следовательно возможны варианты:
1) Одно из чисел N и M делится на 21.
2) Одно из чисел делится на 7, другое – на 3
Произведение будет наибольшим,
когда сомножители принимают
максимально возможные значения.
наибольшее число R
Вывод
Необходимо найти две пары различных элементов массива:
1) Наибольший элемент, делящийся на 21 и отличный от него наибольший из
оставшихся элементов.
2) Наибольший элемент, делящийся на 7 и отличный от него наибольший элемент,
делящийся на 3.
Таким образом, вводим переменные max, max21, max7 и max3. Каждый из
поступающих на вход элементов сравниваем с ними и при необходимости сохраняем.
Замечания
Если текущий элемент массива делится на 21 и превосходит max21 (сохраняем его в
max21), то его сравнение с max необходимо исключить – вложенный условный оператор.
Если текущий элемент массива делится на 7 и превосходит max7 (сохраняем его в max7), то
его сравнение с max3 необходимо исключить – вложенный условный оператор.
Вывод
Необходимо найти две пары различных элементов массива:
1) Наибольший элемент, делящийся на 21 и отличный от него наибольший из оставшихся элементов.
2) Наибольший элемент, делящийся на 7 и отличный от него наибольший элемент, делящийся на 3.
Таким образом, вводим переменные max, max21, max7 и max3. Каждый из
поступающих на вход элементов сравниваем с ними и при необходимости сохраняем.
Если текущий элемент массива делится на 21 и превосходит max21, то перед его сохраняем
в max21 необходимо проверить, не содержится ли в max21 текущий максимум по всем
элементам. Если да, то сначала max21 сохранить в max, а затем текущий элемент в max21.
Главное замечание!!!
Чтобы научиться программировать
нужно программировать!

More Related Content

What's hot

конспект мероприятия
конспект мероприятияконспект мероприятия
конспект мероприятия
lavrenteva
 
Игра "Спаси, львенка!"
Игра "Спаси, львенка!"Игра "Спаси, львенка!"
Игра "Спаси, львенка!"
lavrenteva
 
Милюткин С. Отвлеченные отрицательные числа (презентация)
Милюткин С. Отвлеченные отрицательные числа (презентация)Милюткин С. Отвлеченные отрицательные числа (презентация)
Милюткин С. Отвлеченные отрицательные числа (презентация)
vdohnovlennye
 
Pereshivkina metod intervalov
Pereshivkina metod  intervalovPereshivkina metod  intervalov
Pereshivkina metod intervalov
ko4ergo
 
решение квадратных уравнений бутина
решение квадратных уравнений бутинарешение квадратных уравнений бутина
решение квадратных уравнений бутина
Gala Timofeeva
 
Чабаненко И.Н.
 Чабаненко И.Н. Чабаненко И.Н.
Чабаненко И.Н.
Larisa Korkach
 
лекция 6 представление информации в эвм информатика
лекция 6 представление информации в эвм информатикалекция 6 представление информации в эвм информатика
лекция 6 представление информации в эвм информатика
Gulnaz Shakirova
 

What's hot (20)

Определенный интеграл
Определенный интегралОпределенный интеграл
Определенный интеграл
 
конспект мероприятия
конспект мероприятияконспект мероприятия
конспект мероприятия
 
Reshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenijReshenie diofantovyh uravnenij
Reshenie diofantovyh uravnenij
 
Игра "Спаси, львенка!"
Игра "Спаси, львенка!"Игра "Спаси, львенка!"
Игра "Спаси, львенка!"
 
Математическая индукция
Математическая индукцияМатематическая индукция
Математическая индукция
 
Book.30 desigualdades
Book.30 desigualdadesBook.30 desigualdades
Book.30 desigualdades
 
Милюткин С. Отвлеченные отрицательные числа (презентация)
Милюткин С. Отвлеченные отрицательные числа (презентация)Милюткин С. Отвлеченные отрицательные числа (презентация)
Милюткин С. Отвлеченные отрицательные числа (презентация)
 
правила перевода чисел в позиционных системах счисления
правила перевода чисел в  позиционных системах  счисленияправила перевода чисел в  позиционных системах  счисления
правила перевода чисел в позиционных системах счисления
 
Урок математики в 8 классе Железниченко О.А
Урок математики в 8 классе Железниченко О.АУрок математики в 8 классе Железниченко О.А
Урок математики в 8 классе Железниченко О.А
 
Квадратичная математика
Квадратичная математикаКвадратичная математика
Квадратичная математика
 
Pereshivkina metod intervalov
Pereshivkina metod  intervalovPereshivkina metod  intervalov
Pereshivkina metod intervalov
 
решение квадратных уравнений бутина
решение квадратных уравнений бутинарешение квадратных уравнений бутина
решение квадратных уравнений бутина
 
Чабаненко И.Н.
 Чабаненко И.Н. Чабаненко И.Н.
Чабаненко И.Н.
 
6. Теория графов ll
6. Теория графов ll6. Теория графов ll
6. Теория графов ll
 
система счисления
система счислениясистема счисления
система счисления
 
"Сложение и вычитание дробей с разными знаменателями"
"Сложение и вычитание дробей с разными знаменателями""Сложение и вычитание дробей с разными знаменателями"
"Сложение и вычитание дробей с разными знаменателями"
 
системы счисления
системы счислениясистемы счисления
системы счисления
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 
лекция 6 представление информации в эвм информатика
лекция 6 представление информации в эвм информатикалекция 6 представление информации в эвм информатика
лекция 6 представление информации в эвм информатика
 
двоичная система счисления
 двоичная система счисления двоичная система счисления
двоичная система счисления
 

Viewers also liked

Viewers also liked (17)

Dlya pedagogov
Dlya pedagogovDlya pedagogov
Dlya pedagogov
 
моделирование
моделированиемоделирование
моделирование
 
Word
Word Word
Word
 
устройства памяти
устройства памятиустройства памяти
устройства памяти
 
работа в Excel
работа в Excelработа в Excel
работа в Excel
 
Компьютерные сети
Компьютерные сетиКомпьютерные сети
Компьютерные сети
 
Brochure spectreat
Brochure spectreatBrochure spectreat
Brochure spectreat
 
Глобальная компьютерная сеть
Глобальная компьютерная сетьГлобальная компьютерная сеть
Глобальная компьютерная сеть
 
презентация
презентацияпрезентация
презентация
 
Serpent sboxes
Serpent sboxesSerpent sboxes
Serpent sboxes
 
Web страницы.язык html
Web страницы.язык htmlWeb страницы.язык html
Web страницы.язык html
 
Windows
WindowsWindows
Windows
 
этапы моделирования
этапы моделированияэтапы моделирования
этапы моделирования
 
Excele
ExceleExcele
Excele
 
устройства компьютера
устройства компьютераустройства компьютера
устройства компьютера
 
паскаль
паскальпаскаль
паскаль
 
вирусы и антивирусы
вирусы и антивирусывирусы и антивирусы
вирусы и антивирусы
 

разбор с

  • 1.
  • 2.
  • 3.
  • 4. N max_digit digit 1 При вводе числа 423 программа выведет число 9 423 9 3 42 2 4
  • 5. N max_digit digit 2 Строку max_digit := 9 заменить на max_digit := 0 Строку while N >= 10 do заменить на while N > 0 do 423 9 3 42 2 4 Инициализация заведомо максимальным значением Старший разряд не обрабатывается Неверное выделение младшего разряда Неправильный знак неравенства Неправильное отбрасывание младшего разряда Неправильный вывод, например, writeln(digit);
  • 6. Внимательно читайте условие Выполняйте ровно то, что от Вас просят Не переписывайте программу целиком, укажите лишь неправильные строки Укажите явно: строка … не верна. Необходимо заменить на … Не ищите ошибок там, где их нет
  • 7. Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 9. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 9, то выведите сообщение «Не найдено». Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
  • 8. максимальное значение среди трёхзначных элементов массива, не делящихся на 9 Стандартный алгоритм поиска максимума: max := a[1]; for i := 2 to N do if a[i] > max then max := a[i]; writeln(max); ..могут принимать целые значения от 0 до 10000 включительно.. max := 99; {может быть любое, меньшее 100} for i := 1 to N do if (a[i] >= 100) and (a[i] <= 999) and (a[i] mod 9 <> 0) and (a[i] > max) then max := a[i]; if max = 99 then writeln(‘Не найдено’) else writeln(max); Решение Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 9, то выведите сообщение «Не найдено»
  • 9. Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один или два камня или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16, 17 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 27. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу, в которой будет 27 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 26.
  • 10. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Выигрышная стратегия игрока А должна содержать все возможные ходы игрока В (он может противостоять любыми способами) и только выигрышные ходы игрока А. На любой ход игрока В должен быть указан ровно один выигрышный ход игрока А. X Xa1 Xb11 Xb12 Xb13 C1 C1 C2 C3 Xa21 C2 Xa22 C1 Xa23 C1 А I B I А II
  • 11. +1 +2 *2 Ответ S ≥ 14 Выигрывающий ход: увеличить количество камней в куче в два раза. При этом камней станет 2 * S ≥ 28. При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в один ход. >=27 1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S. Замечания Ни в коем случае не перечислять: S = 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 Можно не указывать верхнюю границу S ≤ 26: она задана по условию Обязательно укажите выигрывающий ход Пети
  • 12. +1 +2 *2 Ответ S ≥ 14 Выигрывающий ход: увеличить количество камней в куче в два раза. При этом камней станет 2 * S ≥ 28. При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в один ход. ≥ 27 1. а) Укажите все такие значения числа S, при которых Петя может выиграть в один ход. Обоснуйте, что найдены все нужные значения S, и укажите выигрывающий ход для каждого указанного значения S. Замечания Ни в коем случае не перечислять: S = 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 Можно не указывать верхнюю границу S ≤ 26: она задана по условию Обязательно укажите выигрывающий ход Пети S ≤ 26 S + 1 ≥ 27 S + 2 ≥ 27 S * 2 ≥ 27 S ≤ 26 S ≥ 26 S ≥ 25 S ≥ 13,5 14 ≤ S ≤ 26 Можно формализовать решение: Укажите один выигрывающий ход Пети для всех S (не надо отдельно для 25 и 26)
  • 13. +1 +2 *2 Ответ S = 13 Выигрывающий ход: независимо от хода Пети, Ваня своим первым ходом должен увеличить количество камней в куче в два раза. ≥ 27 1. б) Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани. Соображения Исходя из п. 1а, чтобы Петя не выиграл в один ход, S должно быть меньше, чем 14 Чтобы Ваня выиграл своим первым ходом, исходя из п. 1а, после хода Пети камней должно быть не меньше, чем 14. Поскольку возможны ходы «+1», «+2» и «*2», единственным возможным значением S является 13. Иначе, если S ≤ 13 (например 12), то Петя может ходом «+1» получить количество камней не превосходящее 13 (например 13) и тогда Ваня не выиграет своим первым ходом. S < 14 S + 1 ≥ 14 S + 2 ≥ 14 S * 2 ≥ 14 S < 14 S ≥ 13 S ≥ 12 S ≥ 7 S = 13 Можно формализовать решение:
  • 14. +1 +2 *2 ≥ 27 2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для каждого указанного значения S опишите выигрышную стратегию Пети. Соображения Исходя из п. 1б, чтобы Петя выиграл своим вторым ходом, после его первого хода камней должно быть 13. Задача Пети – своим первым ходом привести количество камней к 13. Возможны ходы «+1», «+2» и «*2», с помощью которых Петя будет доводить количество камней до 13. Поэтому возможны следующие значения S: S = 12, тогда Петя должен пойти «+1» S = 11, тогда Петя должен пойти «+2» Ход «*2» невозможен, поскольку нет целого числа, которое при умножении на 2 дает 13
  • 15. +1 +2 *2 Ответ (вариант 1) S = 11, S = 12 Выигрышная стратегия: 1) Первым ходом Петя должен привести количество камней к 13. 2) Вторым ходом, независимо от первого хода Вани, Петя должен увеличить количество камней в куче в два раза. ≥ 27 2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для каждого указанного значения S опишите выигрышную стратегию Пети. Ответ (вариант 2) S = 11, S = 12 Выигрышная стратегия видна из дерева игры, в котором указаны все возможные ходы Вани и только выигрышные ходы Пети: 11 13 14 15 26 +2 +1 +2 *2 28 *2 30 *2 52 *2 П I В I П II 12 +1
  • 16. +1 +2 *2 ≥ 27 2. Укажите два таких значения S, при которых у Пети есть выигрышная стратегия, причём (а) Петя не может выиграть за один ход и (б) Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Для каждого указанного значения S опишите выигрышную стратегию Пети. S + 1 = 13 S + 2 = 13 S * 2 = 13 S = 12 S = 11 S = 6,5 Можно формализовать решение:
  • 17. +1 +2 *2 ≥ 27 3. Укажите значение S, при котором: – у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и – у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом. Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На рёбрах дерева указывайте, кто делает ход; в узлах – количество камней в куче. Соображения Исходя из п. 2, чтобы Ваня выиграл своим вторым ходом, после первого хода Пети камней должно быть 11 или 12 (либо не менее 14). Возможны ходы «+1», «+2» и «*2», после которых Петя должен попасть в указанные выше значения. Поэтому возможно единственное значение S = 10. Тогда: Если Петя пойдет «+1» - попадаем в условия п. 2 Если Петя пойдет «*2» - попадаем в условия п. 1а
  • 18. +1 +2 *2 ≥ 27 Ответ (для п. 3) S = 10 Выигрышная стратегия видна из дерева игры, в котором указаны все возможные ходы Пети и только выигрышные ходы Вани: 11 13 14 15 26 +2 +1 +2 *2 28 *2 30 *2 52 *2 П I В I П II 12 +1 10 +2 +1 20 40 *2 *2 В II
  • 19. Ответ 1. а) S ≥ 14. Выигрывающий ход: увеличить количество камней в куче в два раза. При этом камней станет 2 * S ≥ 28. При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в один ход. б) S = 13 Выигрывающий ход: независимо от хода Пети, Ваня своим первым ходом должен увеличить количество камней в куче в два раза. 2. S = 11, S = 12 Выигрышная стратегия: 1) Первым ходом Петя должен привести количество камней к 13. 2) Вторым ходом, независимо от первого хода Вани, Петя должен увеличить количество камней в куче в два раза. 3. S = 10 Выигрышная стратегия видна из дерева игры, в котором указаны все возможные ходы Пети и только выигрышные ходы Вани: (изображенное дерево игры)
  • 20. Ответ 1. а) S ≥ 14. Выигрывающий ход: увеличить количество камней в куче в два раза. При этом камней станет 2 * S ≥ 28. При S ≤ 13 Петя никак не получит больше 26 камней, а значит не выиграет в один ход. б) S = 13 Выигрывающий ход: независимо от хода Пети, Ваня своим первым ходом должен увеличить количество камней в куче в два раза. 2. S = 11, S = 12 Выигрышная стратегия: 1) Первым ходом Петя должен привести количество камней к 13. 2) Вторым ходом, независимо от первого хода Вани, Петя должен увеличить количество камней в куче в два раза. 3. S = 10 Выигрышная стратегия видна из дерева игры, в котором указаны все возможные ходы Пети и только выигрышные ходы Вани: (изображенное дерево игры)
  • 21. По каналу связи передаётся последовательность положительных целых чисел, все числа не превышают 1000. Количество чисел известно, но может быть очень велико. Затем передаётся контрольное значение последовательности – наибольшее число R, удовлетворяющее следующим условиям: 1) R – произведение двух различных переданных элементов последовательности («различные» означает, что не рассматриваются квадраты переданных чисел; допускаются произведения различных элементов последовательности, равных по величине); 2) R делится на 21. Если такого числа R нет, то контрольное значение полагается равным 0. В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.
  • 22. Напишите эффективную, в том числе по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет проверять правильность контрольного значения. Программа должна напечатать отчёт по следующей форме: Вычисленное контрольное значение: … Контроль пройден (или – Контроль не пройден) Перед текстом программы кратко опишите используемый Вами алгоритм решения. На вход программе в первой строке подаётся количество чисел N. В каждой из последующих N строк записано одно натуральное число, не превышающее 1000. В последней строке записано контрольное значение.
  • 23. Пример входных данных: 6 70 21 997 7 9 300 21000 Пример выходных данных для приведённого выше примера входных данных: Вычисленное контрольное значение: 21000 Контроль пройден
  • 24. Соображения R – произведение двух различных переданных элементов последовательности R делится на 21 N*M=21*K, следовательно возможны варианты: 1) Одно из чисел N и M делится на 21. 2) Одно из чисел делится на 7, другое – на 3 Произведение будет наибольшим, когда сомножители принимают максимально возможные значения. наибольшее число R Вывод Необходимо найти две пары различных элементов массива: 1) Наибольший элемент, делящийся на 21 и отличный от него наибольший из оставшихся элементов. 2) Наибольший элемент, делящийся на 7 и отличный от него наибольший элемент, делящийся на 3. Таким образом, вводим переменные max, max21, max7 и max3. Каждый из поступающих на вход элементов сравниваем с ними и при необходимости сохраняем.
  • 25. Замечания Если текущий элемент массива делится на 21 и превосходит max21 (сохраняем его в max21), то его сравнение с max необходимо исключить – вложенный условный оператор. Если текущий элемент массива делится на 7 и превосходит max7 (сохраняем его в max7), то его сравнение с max3 необходимо исключить – вложенный условный оператор. Вывод Необходимо найти две пары различных элементов массива: 1) Наибольший элемент, делящийся на 21 и отличный от него наибольший из оставшихся элементов. 2) Наибольший элемент, делящийся на 7 и отличный от него наибольший элемент, делящийся на 3. Таким образом, вводим переменные max, max21, max7 и max3. Каждый из поступающих на вход элементов сравниваем с ними и при необходимости сохраняем. Если текущий элемент массива делится на 21 и превосходит max21, то перед его сохраняем в max21 необходимо проверить, не содержится ли в max21 текущий максимум по всем элементам. Если да, то сначала max21 сохранить в max, а затем текущий элемент в max21.
  • 26. Главное замечание!!! Чтобы научиться программировать нужно программировать!