DOLAEV07
08.06.2023 12:29

Два игрока, Петя и Ваня, играют в следующую игру.
Перед игроками лежат три кучи камней. Игроки ходят
по очереди, первый ход делает Петя. За один ход
игрок может добавить в одну из куч один камень или
увеличить количество камней в куче в три раза (+1 или *3).
Например, пусть в первой куче 10 камней, во второй
7, а в третьей 4 камня; такую позицию в игре будем
обозначать (10, 7, 4). Тогда за один ход можно
получить любую из шести позиций: (11, 7, 4), (30, 7,
4), (10, 8, 4), (10, 21, 4), (10, 7, 5), (10, 7, 12). Чтобы
делать ходы, у каждого игрока есть неограниченное
количество камней.

Победителем считается игрок, сделавший последний
ход, то есть первым получивший позицию, в которой
в кучах будет 50 или больше камней.
В начальный момент в первой куче было 9 камней, во
второй куче — 10 камней, а в третьей S камней, 1
≤ S ≤ 30.

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

Задание: Укажите такое значение S, при котором у
Вани есть выигрышная стратегия, позволяющая ему
выиграть ВТОРЫМ ходом при любой игре
Пети. Для указанного значения S опишите
выигрышную стратегию Вани.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ApokalipsisZnanij
23.01.2022 20:32
Type
    piece = record
        value: string[10];
        count := 1;
    end;

var
    pieces: array[1..200]of piece;
    i, j, n, pieces_n: integer;
    s, p: string;
    found: boolean;
    imax:=1;

begin
    read(s);
    read(n);
    for i := 1 to length(s) - n + 1 do
    begin
        p := Copy(s, i, n);
        found := false;
        for j := 1 to pieces_n do
            if pieces[j].value = p then begin
                pieces[j].count := pieces[j].count + 1;
                found := true;
                if pieces[imax].count < pieces[j].count then
                    imax := j;
                break;
            end;
        if not found then begin
            pieces_n := pieces_n + 1;
            pieces[pieces_n].value := p;
        end;
    end;
   
    writeln(pieces[imax].value);
end.
0,0(0 оценок)
Ответ:
tsybizovaanya
17.03.2021 12:52
1)
( (x ∈ P) /\ (x ∈ А)) → ( (x ∈ Q) /\ (x ∈ А)) = 1
-( (x ∈ P) /\ (x ∈ А)) \/ ( (x ∈ Q) /\ (x ∈ А)) = 1 (убрали стрелочку)
-(x ∈ P) \/  -(x ∈ А) \/ ((x ∈ Q) /\ (x ∈ А)) = 1 (правило де Моргана)
-(x ∈ P) \/  (-(x ∈ А) \/ (x ∈ Q)) /\ (-(x ∈ А) \/ (x ∈ А)) = 1
-(x ∈ P) \/  -(x ∈ А) \/ (x ∈ Q) = 1
x ∈ (-P U Q U -A) = 1
т.е. -P U Q U -A = (-infinity; +infinity)
-P U Q = (-infinity; 39) U (58; +infinity)
нужно чтоб -А покрыло оставшийся кусок [39; 58] т.е. А не должно содержать [39; 58]
из предложенных это 1)  [5, 20]

2) Алфавит из 18 символов, log(18)/log(2) = 4.16992500144231 {округляем до целого} ~= 5 бит на символ
Вес номера байт = 5бит * 6 / 8 = 3.75 байт {округляем до целого} ~= 4 байт
400 * 4 байт = 1600 байт

3) Комбинаторика - Размещение с повторениями
n - кол-во элементов в наборе (у нас 4)
k - кол-во мест (у нас 5 и 6)
Количество размещений с повторениями = `A(k,n) = n^k
`A(5, 4) + `A(6, 4) = 4^5 + 4^6 = 5 120
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота