Serega20032017
23.01.2022 19:22

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч один камень или увеличить количество камней в куче в два раза. Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 61. Победителем считается игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет 61 или больше камней. В начальный момент в первой куче было 10 камней, во второй куче – S камней, 1 ≤ S ≤ 50. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
ответьте на следующие вопросы:
Вопрос 1. Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Назовите минимальное значение S, при котором это возможно.
Вопрос 2. Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём Петя не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Найденные значения запишите в ответе в порядке возрастания.
Вопрос 3. Сколько существует значений S, при которых у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети, и при этом у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Romanby1
29.04.2023 17:58

Последняя цифра числа - остаток деления на N, где N - основание системы счисления. Соответственно, последние две цифры - остаток от деления на N^2.

 

12₄ = 1*4 + 2 = 6₁₀

 

Выходит, что нам нужно найти все десятичные числа, которые не превосходят 40 и  при делении на 16 дают остаток 12.

 

Общий вид таких чисел: k*16 + 6. K - любое целое неотрицательное число. Теперь просто подставляем.

если k = 0, то получается число 5.

если k = 1, то получается число 22.

если k = 2, то получается число 38.

Очевидно, что дальше мы выйдем за границы нужного нам диапазона.

 

ответ: 5, 22, 38

0,0(0 оценок)
Ответ:
эля1413
10.09.2022 15:05

program z1;
var
i,j,m,k,z,x,l:integer;
begin
readln(m);
for i:=0 to m do begin z:=1;
if i=0 then z:=1 else begin
x:=i;
while x<>0 do begin
z:=z*4;
x:=x-1;
end; end;
if ((z<m) and (z*4>m)) then writeln(i);
if z=m then writeln(i-1);
end;
end.

 

program z2;
var
i,j,n,k,z,x,l:integer;
begin
readln(n);
for i:=0 to n do begin z:=1;
if i=0 then z:=1 else begin
x:=i;
while x<>0 do begin
z:=z*2;
x:=x-1;
end; end;
if ((z>n) and (z/2<n)) then writeln(i);
if z=n then writeln(i+1);
end;
end.

 

program z3;
var
i,j,n,k,z,x,s:integer;
begin
readln(n); s:=0;
for i:=1 to n do begin z:=1;
for j:=i to 2*i do
z:=z*j;
s:=s+z; end;
writeln(s);
end.

 

время 2 ночи 

...думаю пора спать ) 

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота