такко
25.03.2023 19:18

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. Задание 1.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.
Задание 2.
Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Задание 3.
Найдите минимальное значение S, при котором одновременно выполняются два условия:
– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 57. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 57 или больше камней. В начальный момент в первой куче было 5 камней, во второй куче – S камней; 1 ≤ S ≤ 51.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
настя7500
22.04.2023 22:55

Сишарпик

           string ArmanAge, IvanAge, RuslanAge;

           Console.WriteLine("Введите возраст Армана."); ArmanAge = Console.ReadLine();

           Console.WriteLine("Введите возраст Ивана."); IvanAge = Console.ReadLine();

           Console.WriteLine("Введите возраст Руслана."); RuslanAge = Console.ReadLine();

           if (byte.TryParse(ArmanAge, out byte ByteArmanAge) && ByteArmanAge < 115 &&

              byte.TryParse(IvanAge, out byte ByteIvanAge) && ByteIvanAge < 115 &&

              byte.TryParse(RuslanAge, out byte ByteRuslanAge) && ByteRuslanAge < 115)

           {

               byte MaxAge;

               byte EqualAge;

               if (ByteArmanAge > ByteIvanAge && ByteArmanAge > ByteRuslanAge)

               {

                   MaxAge = ByteArmanAge;

                   Console.WriteLine($"Самый старший Арман, его возраст {MaxAge}.");

               }

               else if (ByteIvanAge > ByteArmanAge && ByteIvanAge > ByteRuslanAge)

               {

                   MaxAge = ByteIvanAge;

                   Console.WriteLine($"Самый старший Иван, его возраст {MaxAge}.");

               }

               else if (ByteRuslanAge > ByteArmanAge && ByteRuslanAge > ByteIvanAge)

               {

                   MaxAge = ByteRuslanAge;

                   Console.WriteLine($"Самый старший Руслан, его возраст {MaxAge}.");

               }

               else

               {

                   EqualAge = ByteRuslanAge; // к примеру его возраст.

                   Console.WriteLine($"У всех парней одинаковый возраст, им по {EqualAge} лет.");

               }

           }

           else

           {

               Console.WriteLine("Введите корректные значения.");

               Console.ReadLine();

               return;

           }

           Console.ReadLine();

0,0(0 оценок)
Ответ:
hudognik78
19.08.2020 21:33

import math # импорт библиотеки math для вычислений

# запрашиваем стороны:

a = int(input('Введите первую сторону треугольника: '))

b = int(input('Введите вторую сторону треугольника: '))

c = int(input('Введите третью сторону треугольника: '))

if a + b <= c or b + c <= a or a + c <= b: # сумма любых двух сторон должна быть больше третьей

  print('Треугольника с данными сторонами не существует') # если нет, то выводим это

else: # если сумма любых двух больше третьей, то проводим вычисления:

   a1 = float(math.acos((a ** 2 + b ** 2 - c ** 2) / (2 * a * b)) * 180 / math.pi) # по теореме косинусов

   b1 = float(math.acos((a ** 2 - b ** 2 + c ** 2) / (2 * a * c)) * 180 / math.pi) # 1) вычисляем сторону; 2) переводим число в радианах, которое возвращает math.acos(), в градусы (180 / pi)

   c1 = float(math.acos((b ** 2 + c ** 2 - a ** 2) / (2 * c * b)) * 180 / math.pi)

  print('Первый угол треугольника: ' + str(round(a1, 2)))  # выводим значения, округляя до сотен

   print('Второй угол треугольника: ' + str(round(b1, 2)))

   print('Третий угол треугольника: ' + str(round(c1, 2)))

Объяснение:


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