Распределение заданий с развернутым ответом по уровню сложности 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Распределение заданий с развернутым ответом по уровню сложности



В части 2 всего четыре задания, относящиеся к повышенному и высокому уровню сложности.

Если для заданий базового уровня предполагаемый процент выполнения 60%–80%, то для заданиий повышенного и высокого уровня сложности требования более высокие. Для задания 24 повышенного уровня предполагаемый процент выполнения от 40 % до 60%, а для остальных заданий части 2 предполагаемый процент выполнения от 10% до 30%.

Система оценивания выполнения заданий с развернутым ответом и экзаменационной работы в целом

 

Ответы на задания части 2 проверяются и оцениваются экспертами (устанавливается соответствие ответов определенному перечню критериев).

Максимальное количество баллов, которое можно получить за выполнение заданий части 2, – 12 баллов.


 

Фрагмент обобщенного плана экзаменационной работы по информатике и ИКТ 2020 г.

№ п/п Обо­зна­чение зада­ния Проверяемые элементы содержания и виды деятельности Коды проверя­емых элементов содержания по кодифика-тору Коды требований к уровню подготовки выпускников по кодифика-тору Уровень слож­ности задания Макси­маль­ный балл за задание При­мерное время выпол­не­ния (мин)
  ... ...
    Часть 3          
24 24 Умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки 1.7.2 1.1.4 П 3 30
25 25 Умения написать короткую (10–15 строк) простую программу обработки массива на языке программирования 1.6.3 1.1.5   В 2 30
26 26 Умение построить дерево игры по заданному алгоритму и обосновать выигрышную стратегию 1.5.2 1.1.3 В 3 30
27 27 Умения создавать собственные программы (30–50 строк) для решения задач средней сложности 1.7.3 1.1.5 В 4 55

Варианты заданий части 2 и критерии оценивания

Варианты задания 24 и критерии оценивания

 

Задание 24. Вариант 1

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран количество цифр этого числа, делящихся на 3. Если в числе нет цифр, делящихся на 3, на экран требуется вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Напоминание: 0 делится на любое натуральное число.

Бейсик Python
DIM N, DIGIT, COUNT AS LONG INPUT N COUNT = 1 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT MOD 3 = 0 THEN COUNT = COUNT + DIGIT END IF N = N \ 10 WEND IF COUNT = 0 THEN PRINT "NO" ELSE PRINT COUNT END IF N = int(input()) count = 1 while N > 0: digit = N % 10 if digit % 3 == 0: count = count + digit N = N // 10 if count == 0: print("NO") else: print(count)
Алгоритмический язык Паскаль
алг нач цел N, digit, count ввод N count:= 1 нцпока N > 0 digit:= mod(N,10) если mod(digit,3) = 0 то count:= count + digit все N:= div(N,10) кц если count = 0 то вывод "NO" иначе вывод count все кон var N, digit, count: longint; begin readln(N); count:= 1; while N > 0 do begin digit:= N mod 10; if digit mod 3 = 0 then count:= count + digit; N:= N div 10; end; if count = 0 then writeln('NO') else writeln(count) end.

 

С ++
#include <iostream> using namespace std;   int main() { int N, digit, count; cin >> N; count = 1; while (N > 0) { digit = N % 10; if (digit % 3 == 0) count = count + digit; N = N / 10; } if (count == 0) cout << "NO" << endl; else cout << count << endl; return 0; }

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 145.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

 


 

 

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки ответа, не искажающие его смысла)

Решение использует запись программы на Паскале. Допускается использование программы на любом из других четырёх языков.

1. Программа выведет число 1.

2. Программа выдаёт правильный ответ, например, для числа 140.

Замечание для проверяющего. Программа работает неправильно из-за неверного задания начального значения счётчика и неверного увеличения счётчика. Соответственно, программа будет работать верно, если в числе есть ровно один значащий 0 и нет других цифр, делящихся на 3.

3. В программе есть две ошибки.

Первая ошибка: неверное начальное значение счётчика.

Строка с ошибкой:

count:= 1;

Верное исправление:

count:= 0;

Вторая ошибка: неверное изменение счётчика.

Строка с ошибкой:

count:= count + digit;

Верное исправление:

count:= count + 1;

Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить четыре действия: 1) указать, что выведет программа при конкретном входном числе; 2) указать пример входного числа, при котором программа выдаёт верный ответ; 3) исправить первую ошибку; 4) исправить вторую ошибку. Для проверки правильности выполнения п. 2) нужно формально выполнить исходную (ошибочную) программу с входными данными, которые указал экзаменуемый, и убедиться в том, что результат, выданный программой, будет таким же, как и для правильной программы. Для действий 3) и 4) ошибка считается исправленной, если выполнены оба следующих условия: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении другой ошибки получается правильная программа  
Выполнены все четыре необходимых действия, и ни одна верная строка не указана в качестве ошибочной 3
Не выполнены условия, позволяющие поставить 3 балла. Имеет место одна из следующих ситуаций: а) выполнены три из четырёх необходимых действий. Ни одна верная строка не указана в качестве ошибочной; б) выполнены все четыре необходимых действия. Указано в качестве ошибочной не более одной верной строки 2
Не выполнены условия, позволяющие поставить 2 или 3 балла. Выполнены два из четырёх необходимых действий 1
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла 0
Максимальный балл 3

 

Задание 24. Вариант 2

 

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр числа, больших 5. Если в числе нет цифр, больших 5, требуется вывести на экран «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Бейсик Python
DIM N, DIGIT, SUM AS LONG INPUT N SUM = N MOD 10 WHILE N > 0 DIGIT = N MOD 10 IF DIGIT > 5 THEN SUM = DIGIT END IF N = N \ 10 WEND IF SUM > 0 THEN PRINT SUM ELSE PRINT "NO" END IF N = int(input()) sum = N % 10 while N > 0: digit = N % 10 if digit > 5: sum = digit N = N // 10 if sum > 0: print(sum) else: print("NO")
Алгоритмический язык Паскаль
алг нач цел N, digit, sum ввод N sum:= mod(N,10) нцпока N > 0 digit:= mod(N,10) если digit > 5 то sum:= digit все N:= div(N,10) кц если sum > 0 то вывод sum иначе вывод "NO"    все кон var N, digit, sum: longint; begin readln(N); sum:= N mod 10; while N > 0 do begin digit:= N mod 10; if digit > 5 then sum:= digit; N:= N div 10; end; if sum > 0 then writeln(sum) else writeln('NO') end.

 

С ++
#include <iostream> using namespace std;   int main() { int N, digit, sum; cin >> N; sum = N % 10; while (N > 0) { digit = N % 10; if (digit > 5) sum = digit; N = N / 10; } if (sum > 0) cout << sum << endl; else cout << "NO" << endl; return 0; }

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 748.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

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

 


 

 

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки ответа, не искажающие его смысла)

Решение использует запись программы на Паскале. Допускается использование программы на любом из других четырёх языков.

1. Программа выведет число 7.

2. Программа выдаёт правильный ответ, например, для числа 546.

Замечание для проверяющего. Программа работает неправильно из-за неверной начальной инициализации суммы и неверного увеличения суммы. Соответственно, программа будет работать верно, если в числе ровно одна цифра, большая 5, или таких цифр вообще нет и при этом число заканчивается на 0.

3. В программе есть две ошибки.

Первая ошибка: неверная инициализация суммы (переменная sum).

Строка с ошибкой:

sum:= N mod 10;

Верное исправление:

sum:= 0;

Вторая ошибка: неверное увеличение суммы.

Строка с ошибкой:

sum:= digit;

Верное исправление:

sum:= sum + digit;

Указания по оцениванию Баллы
Обратите внимание! В задаче требовалось выполнить четыре действия: 1) указать, что выведет программа при конкретном входном числе; 2) указать пример входного числа, при котором программа выдаёт верный ответ; 3) исправить первую ошибку; 4) исправить вторую ошибку. Для проверки правильности выполнения п. 2) нужно формально выполнить исходную (ошибочную) программу с входными данными, которые указал экзаменуемый, и убедиться в том, что результат, выданный программой, будет таким же, как и для правильной программы. Для действий 3) и 4) ошибка считается исправленной, если выполнены оба следующих условия: а) правильно указана строка с ошибкой; б) указан такой новый вариант строки, что при исправлении другой ошибки получается правильная программа  
Выполнены все четыре необходимых действия, и ни одна верная строка не указана в качестве ошибочной 3
Не выполнены условия, позволяющие поставить 3 балла. Имеет место одна из следующих ситуаций: а) выполнены три из четырёх необходимых действий. Ни одна верная строка не указана в качестве ошибочной; б) выполнены все четыре необходимых действия. Указано в качестве ошибочной не более одной верной строки 2
Не выполнены условия, позволяющие поставить 2 или 3 балла. Выполнены два из четырёх необходимых действий 1
Не выполнены условия, позволяющие поставить 1, 2 или 3 балла 0
Максимальный балл 3

 

Вариант задания 25 и критерии оценивания

 

Задание 25. Вариант 1

 

 

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит максимальный элемент среди элементов массива, имеющих чётное значение, а затем заменяет каждый элемент с чётным значением на число, равное найденному максимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.

Например, для исходного массива из шести элементов:

8

3

4

5

13

10

программа должна вывести следующий массив

10

3

10

5

13

10

 

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик Python
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I AS LONG, J AS LONG, K AS LONG   FOR I = 1 TO N INPUT A(I) NEXT I ...   END # допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) ...

 

Алгоритмический язык Паскаль
алг нач цел N = 30 целтаб a[1:N] цел i, j, k нцдля i от 1 до N    ввод a[i] кц ...   кон const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i:= 1 to N do    readln(a[i]); ...   end.

C++

#include <iostream>

using namespace std;

const int N = 30;

int main() {

long a[N];

long i, j, k;

for (i = 0; i < N; i++)

   cin >> a[i];

...

return 0;

}

 

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).

 

 


 

 

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)
На языке Паскаль
k:= -10000; for i:= 1 to N do if (a[i] mod 2 = 0) and (a[i] > k) then k:= a[i]; for i:= 1 to N do begin if (a[i] mod 2 = 0) then a[i]:= k; writeln(a[i]); end;
На Алгоритмическом языке
k:= -10000 нцдля i от 1 до N если mod(a[i], 2) = 0 и a[i] > k то k:= a[i] все кц нцдля i от 1 до N если mod(a[i], 2) = 0 то a[i]:= k все вывод a[i], нс кц
На языке Бейсик
K = -10000 FOR I = 1 TO N IF A(I) MOD 2 = 0 AND A(I) > K THEN K = A(I) END IF NEXT I FOR I = 1 TO N IF A(I) MOD 2 = 0 THEN A(I) = K END IF PRINT A(I) NEXT I
На языке С++
k = -10000; for (i = 0; i < N; i++) if (a[i] % 2 == 0 && a[i] > k) k = a[i]; for (i = 0; i < N; i++) { if (a[i] % 2 == 0) a[i] = k; cout << a[i] << endl; }

 

На языке Python

k = -10000

for i in range(0, n):

if (a[i] % 2 == 0 and a[i] > k):

   k = a[i]

for i in range(0, n):

if (a[i] % 2 == 0):

   a[i] = k

print(a[i]) 

Указания по оцениванию Баллы
Общие указания. 1. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы. 2. Эффективность алгоритма не имеет значения и не оценивается. 3. Допускается запись алгоритма на языке программирования, отличном от языков, приведённых в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на Алгоритмическом языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи. 4. Допускается формат вывода массива, отличный от указанного, например в строчку  
Предложен правильный алгоритм, который изменяет исходный массив и выводит в качестве результата изменённый массив 2
Не выполнены условия, позволяющие поставить 2 балла. При этом предложено в целом верное решение, содержащее не более одной ошибки из числа следующих: 1) в цикле происходит выход за границу массива; 2) не инициализируется или неверно инициализируется максимум; 3) неверно осуществляется проверка чётности; 4) проверяется чётность не элемента массива, а его индекса; 5) в сравнении с максимумом перепутаны знаки «меньше» и «больше»; 6) сравнение с максимумом производится для индекса элемента массива, а не для его значения; 7) неверно составлено логическое условие (например, используется or вместо and); 8) исходный массив не изменяется; 9) изменяются не все требуемые элементы (например, только первый или последний из них); 10) отсутствует вывод ответа, или ответ выводится не полностью (например, только один элемент массива ввиду пропущенного цикла вывода элементов или операторных скобок); 11) используется переменная, не объявленная в разделе описания переменных; 12) не указано или неверно указано условие завершения цикла; 13) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно 1
Ошибок, перечисленных в п. 1–13, две или больше, или алгоритм сформулирован неверно (в том числе при отсутствии в явном или неявном виде цикла поиска нужного элемента) 0
Максимальный балл 2

 


Задание 25. Вариант 2

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, не меньших 99 и при этом не кратных 4, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки.

Например, для исходного массива из шести элементов:

101

128

6

105

4

18

программа должна вывести следующий массив:

206

128

6

206

4

18

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

Бейсик Python
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I AS LONG, J AS LONG, K AS LONG   FOR I = 1 TO N INPUT A(I) NEXT I ...   END # допускается также # использовать две # целочисленные переменные j и k a = [] n = 30 for i in range(0, n): a.append(int(input())) ...
Алгоритмический язык Паскаль
алг нач цел N = 30 целтаб a[1:N] цел i, j, k нцдля i от 1 до N    ввод a[i] кц ...   кон const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i:= 1 to N do    readln(a[i]); ...   end.

C++

#include <iostream>

using namespace std;

const int N = 30;

int main() {

long a[N];

long i, j, k;

for (i = 0; i < N; i++)

   cin >> a[i];

...

return 0;

}

 

В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).

 


 

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки ответа, не искажающие его смысла)

На языке Паскаль

k:= 0;

for i:= 1 to N do

if (a[i] >= 99) and (a[i] mod 4 <> 0) then

k:= k + a[i];

for i:= 1 to N do begin

if (a[i] >= 99) and (a[i] mod 4 <> 0) then

a[i]:= k;

writeln(a[i]);

end;

На Алгоритмическом языке

k:= 0

нцдля i от 1 до N

если a[i] >= 99 и mod(a[i], 4) <> 0

то

k:= k + a[i]

все

кц

нцдля i от 1 до N

если a[i] >= 99 и mod(a[i], 4) <> 0

то

a[i]:= k

все

вывод a[i], нс

кц

На языке Бейсик

K = 0

FOR I = 1 TO N

IF A(I) >= 99 AND A(I) MOD 4 <> 0 THEN

K = K + A(I)

END IF

NEXT I

FOR I = 1 TO N

IF A(I) >= 99 AND A(I) MOD 4 <> 0 THEN

A(I) = K

END IF

PRINT A(I)

NEXT I

На языке С++

k = 0;

for (i = 0; i < N; i++)

if (a[i] >= 99 && a[i] % 4!= 0)

k = k + a[i];

for (i = 0; i < N; i++) {

if (a[i] >= 99 && a[i] % 4!= 0)

a[i] = k;

cout << a[i] << endl;

}

На языке Python

k = 0

for i in range(0, n):

if (a[i] >= 99 and a[i] % 4!= 0):

   k = k + a[i]

for i in range(0, n):

if (a[i] >= 99 and a[i] % 4!= 0):

   a[i] = k 

print(a[i])

Указания по оцениванию Баллы
Общие указания. 1. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы. 2. Эффективность алгоритма не имеет значения и не оценивается. 3. Допускается запись алгоритма на языке программирования, отличном от языков, приведённых в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на Алгоритмическом языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи. 4. Допускается формат вывода массива, отличный от указанного, например в строчку  
Предложен правильный алгоритм, который изменяет исходный массив и выводит в качестве результата изменённый массив 2
Не выполнены условия, позволяющие поставить 2 балла. При этом предложено в целом верное решение, содержащее не более одной ошибки из числа следующих: 1) в цикле происходит выход за границу массива; 2) не инициализируется или неверно инициализируется сумма найденных элементов; 3) неверно осуществляется проверка делимости на 4; 4) проверяется делимость на 4 не элемента массива, а его индекса; 5) неверно осуществляется сравнение с 99 (например, используется знак «больше»); 6) сравнение с 99 производится для индекса элемента массива, а не для его значения; 7) неверно составлено логическое условие (например, используется or вместо and); 8) не вычисляется или неверно накапливается сумма найденных элементов; 9) исходный массив не изменяется или изменяется неверным образом; 10) отсутствует вывод ответа, или ответ выводится не полностью (например, только один элемент массива ввиду пропущенного цикла вывода элементов или операторных скобок); 11) используется переменная, не объявленная в разделе описания переменных; 12) не указано или неверно указано условие завершения цикла; 13) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно 1
Ошибок, перечисленных в п. 1–13, две или больше, или алгоритм сформулирован неверно (в том числе при отсутствии в явном или неявном виде цикла подсчёта суммы нужных элементов) 0
Максимальный балл 2

Варианты задания 26 и критерии оценивания

Задание 26. Вариант 1.

 

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Например, имея кучу из 15 камней, за один ход можно получить кучу из 16 или 30 камней. У каждого игрока, чтобы делать ходы, есть неограниченное количество камней.

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

 В начальный момент в куче было S камней, 1 ≤ S ≤ 21.

 

Говорят, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход
он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника.

 

Выполните следующие задания. Во всех случаях обосновывайте свой ответ.

  1.  а) При каких значениях числа S Петя может выиграть первым ходом? Укажите все такие значения.

 б) Укажите такое значение S, при котором Петя не может выиграть за один ход,
но при любом ходе Пети Ваня может выиграть своим первым ходом. Опишите выигрышную стратегию Вани.

  1.  Укажите два значения S, при которых у Пети есть выигрышная стратегия, причем (а) Петя не может выиграть первым ходом, но (б) Петя может выиграть своим вторым ходом, независимо от того, как будет ходить Ваня.

Для указанных значений S опишите выигрышную стратегию Пети.

  1. Укажите такое значение S, при котором у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, но при этом у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Для указанного значения S опишите выигрышную стратегию Вани. Постройте дерево всех партий, возможных при этой выигрышной стратегии Вани (в виде рисунка или таблицы). На ребрах дерева указывайте, кто делает ход, в узлах – количество камней в позиции.

 


 

Содержание верного ответа и указания по оцениванию (допускаются иные формулировки ответа, не искажающие его смысла)

(допускаются иные формулировки ответа, не искажающие его смысла)

  1. а) Петя может выиграть первым ходом, если S =11, …, 21. Во всех случаях нужно удвоить количество камней в куче. При меньших значениях S за один ход нельзя получить кучу, в которой больше 21 камня.

б) Ваня может выиграть первым ходом (как бы ни играл Петя), если исходно в куче будет S =10 камней. Тогда после первого хода Пети в куче будет 11 камней или 20 камней. В обоих случаях Ваня удваивает количество камней и выигрывает первым ходом.

 

  1.  Возможные значения S: 5 и 9. В этих случаях Петя, очевидно, не может выиграть первым ходом. Однако он может получить кучу из 10 камней. Эта позиция разобрана в п. 1б. В ней игрок, который будет ходить (теперь это Ваня), выиграть не может,
    а его противник (то есть, Петя) следующим ходом выиграет.
  2. Возможное значение S: 8. После первого хода Пети в куче будет 9 или 16 камней. Если в куче станет 16 камней, Ваня удвоит количество камней и выиграет первым ходом. Ситуация, когда в куче 9 камней, разобрана в п. 2. В этой ситуации игрок, который будет ходить (теперь это Ваня), выигрывает своим вторым ходом.

В таблице изображено дерево возможных партий при описанной стратегии Вани. Заключительные позиции (в них выигрывает Ваня) подчеркнуты. На рисунке это же дерево изображено в графическом виде (оба способа изображения дерева допустимы).

 

 

Положения после очередных ходов

И.п. 1-й ход Пети (разобраны все ходы) 1-й ход Вани (только ход по стратегии) 2-й ход Пети (разобраны все ходы) 2-й ход Вани (только ход по стратегии)

8

8+1 = 9

9+1= 10

10+1=11 11*2=22
10*2=20 20*2=40
8*2=16 16*2=32    

 

 

Рис.1. Дерево всех партий, возможных при Ваниной стратегии. Знаком >>обозначены позиции, в которых партия заканчивается.


 

Указания по оцениванию Баллы
В задаче от ученика требуется выполнить 3 задания. Их трудность возрастает. Количество баллов в целом соответствует количеству выполненных заданий (подробнее см. ниже). Ошибка в решении, не искажающая основного замысла, например, арифметическая ошибка при вычислении количества камней в заключительной позиции, при оценке решения не учитывается.   Первое задание считается выполненным полностью, если выполнены полностью оба пункта а) и б). Пункт а) считается выполненным полностью, если правильно указаны все позиции, в которых Петя выигрывает первым ходом и указано, каким должен быть первый ход. Пункт б) считается выполненным, если правильно указана позиция, в которой Ваня выигрывает первым ходом и описана стратегия Вани, т.е. показано, как Ваня может получить кучу, в которой содержится нужное количество камней при любом ходе Пети.   Второе задание выполнено, если правильно указаны обе позиции, выигрышная для Пети и описана соответствующая стратегия Пети – так, как это написано в примере решения или другим способом, например, с помощью дерева всех возможных партий.   Третье задание выполнено, если правильно указана позиция, выигрышная для Вани и построено дерево всех партий, возможных при Ваниной стратегии. Должно быть явно сказано, что в этом дереве в каждой позиции, где должен ходить Петя, разобраны все возможные ходы, а для позиций, где должен ходить Ваня – только ход, соответствующий стратегии, которую выбрал Ваня.   Во всех случаях стратегии могут быть описаны так, как это сделано в примере решения или другим способом.  
Выполнены второе и третье задания. Первое задание выполнено полностью или частично. Здесь и далее допускаются арифметические ошибки, которые не искажают сути решения и не приводят к неправильному ответу (см. выше). 3
Не выполнены условия, позволяющие поставить 3 балла, и выполнено одно из следующих условий. 1. Задание 3 выполнено полностью. 2. Первое и второе задания выполнены полностью. 2
Не выполнены условия, позволяющие поставить 3 или 2 балла, и выполнено одно из следующих условий. 1. Первое задание выполнено полностью. 2. Во втором задании правильно указано одно из двух возможных значений S, и для этого значения указана и обоснована выигрышная стратегия Пети. 1
Не выполнено ни одно из условий, позволяющих поставить 3, 2 или 1 балл 0
Максимальный балл 3

Задание 26. Вариант 2.

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень либо увеличить количество камней в куче в два раза. Например, пусть в одной куче 10 камней, а в другой 7 камней; такую позицию в игре будем обозначать (10, 7). Тогда за один ход можно получить любую из четырёх позиций: (11, 7), (20, 7), (10, 8), (10, 14). Для того чтобы делать ходы,
у каждого игрока есть неограниченное количество камней.

 

Игра завершается в тот момент, когда суммарное количество камней
в кучах становится не менее 59.

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

 

Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. Например, при начальных позициях (4, 28), (5, 27), (7, 26) выигрышная стратегия есть у Пети. Чтобы выиграть, ему достаточно удвоить количество камней во второй куче.
В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от дальнейшей игры противника.

 

Задание 1. Для каждой из начальных позиций (4, 27), (6, 26) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию.

 

Задание 2. Для каждой из начальных позиций (4, 26), (5, 26), (6, 25) укажите, кто из игроков имеет выигрышную стратегию. В каждом случае опишите выигрышную стратегию.

 

Задание 3. Для начальной позиции (5, 25) укажите, кто из игроков имеет выигрышную стратегию. Опишите выигрышную стратегию. Постройте дерево всех партий, возможных при указанной Вами выигрышной стратегии. Представьте дерево в виде рисунка или таблицы. Дерево не должно содержать партии, невозможные при реализации выигрывающим игроком своей выигрышной стратегии. Например, полное дерево игры не является верным ответом на это задание.

 

 

 

 

Содержание верного ответа и указания по оцениванию

(допускаются иные формулировки ответа, не искажающие его смысла)

Задание 1. В начальных позициях (4, 27), (6, 26) выигрышная стратегия есть у Вани. При начальной позиции (4, 27) после первого хода Пети может получиться одна из следующих четырёх позиций: (5, 27), (8, 27), (4, 28),
(4, 54). Каждая из этих позиций содержит менее 59 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 59 камней, удвоив количество камней во второй куче. Для позиции
(6, 26) после первого хода Пети может получиться одна из следующих четырёх позиций: (7, 26), (12, 26), (6, 27), (6, 52). Каждая из этих позиций содержит менее 59 камней. При этом из любой из этих позиций Ваня может получить позицию, содержащую не менее 59 камней, удвоив количество камней во второй куче.

 

Задание 2. В начальных позициях (4, 26), (5, 26) и (6, 25) выигрышная стратегия есть у Пети. При начальной позиции (4, 26) он должен первым ходом получить позицию (4, 27), из начальных позиций (5, 26) и (6, 25) Петя после первого хода должен получить позицию (6, 26). Позиции (4, 27)
и (6, 26) рассмотрены при разборе задания 1. В этих позициях выигрышная стратегия есть у игрока, который будет ходить вторым (теперь это Петя). Эта стратегия описана при разборе задания 1.

 

Задание 3. В начальной позиции (5, 25) выигрышная стратегия есть у Вани. После первого хода Пети может возникнуть одна из четырёх позиций: (6, 25), (5, 26), (10, 25) и (5, 50). В позициях (10, 25) и (5, 50) Ваня может выиграть одним ходом, удвоив количество камней во второй куче. Позиции (6, 25)
и (5, 26) были рассмотрены при разборе задания 2. В этих позициях у игрока, который должен сделать ход (теперь это Ваня), есть выигрышная стратегия. Эта стратегия описана при разборе задания 2.

 

В таблице изображено дерево возможных партий (и только их) при описанной стратегии Вани. Заключительные позиции (в них выигрывает Ваня) выделены жирным шрифтом.

 

 

Положения после очередных ходов

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

(5, 25) Всего: 30

(5, 25+1) = (5, 26)

Всего: 31

(5+1, 26) =

(6, 26)

Всего: 32



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 63; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.183.1 (0.183 с.)