mihailodnowal777
18.08.2020 20:49

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или добавить столько камней, сколько их в данный момент в другой куче. Например, пусть в одной куче 5 камней, а в другой 9 камней; такую позицию мы будем обозначать (5, 9). За один ход из позиции (5, 9) можно получить любую из четырёх позиций: (6, 9), (14, 9), (5, 10), (5, 14). Чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 75. Победителем считается игрок, сделавший последний ход, т. е. первым получивший позицию, в которой в кучах будет 75 или больше камней.

В начальный момент в первой куче было 7 камней, во второй куче — S камней; 1 ≤ S ≤ 67.

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

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

def f(x,y,p):

if p>3 or x+y>=75:

return p==3

return f(x+1,y,p+1) or f(x,y+1,p+1) or f(x+y,y,p+1) or f(x,y+1,p+1)

for y in range(1,68):

if f(7,y,1):

print(y)

найти ошибку в программе ))) Выводит 23, правильный ответ - 21♡

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Babl11
21.06.2021 16:18
1. Немного теории
Чтобы сравнить числа в разных системах счисления, нужно привести их к какой-нибудь одной. У нас системы счисления 2, 10, 8=2³, 16=2⁴.
Числа в системах по основанию 2ⁿ всегда проще всего сводить к системе счисления по основанию 2, поскольку при этом каждый исходный разряд числа заменяется n двоичными разрядами. Т.е. перевод 8⇒2 сведется к замене каждой цифры тремя двоичными разрядами, а 16⇒2 - четырьмя.
И единственной "неудобной" операцией у нас будет перевод 101₁₀⇒Х₂
2. Собственно решение
21₈ = 10 001₂ = 10001₂
12₁₆ = 1 0010₂ = 10010₂

101/2 = 50, остаток 1
50/2 = 25, остаток 0
25/2 = 12, остаток 1
12/2 = 6, остаток 0
6/2 = 3, остаток 0
3/2 = 1, остаток 1
1/2 = 0, остаток 1
Выписываем остатки в обратном порядке, получая 101₁₀=1100101₂

Располагаем числа по убыванию:
1100101, 10010, 10001, 11

ответ: 101₁₀, 12₁₆, 21₈, 11₂
0,0(0 оценок)
Ответ:
ооиррррр
11.01.2023 21:59

Объяснение:

1.

a = input("Введите через запятую значения элементов массива (2,3,6...): ").split(",")

new_array = []

for thing in a:

   new_array.append(int(thing) * 2)

print(new_array)

2.

a = input("Введите через запятую значения элементов массива (2,3,6...): ").split(",")

new_array = []

last_elem = int(a.pop())

counter = 0

for thing in a:

   if counter == 0:

       new_array.append(int(thing))

       counter += 1

   else:

       new_array.append(int(thing) * 5)

new_array.append(last_elem)

print(new_array)

3.

a = input("Введите через запятую значения элементов массива (2,3,6...): ").split(",")

part = int(len(a) / 2)

new_array = []

for thing in a[:part]:

   new_array.append(int(thing) + 1)

for thing in a[part:]:

   new_array.append(int(thing) * 2)

print(new_array)

4.

a = input("Введите через запятую значения элементов массива (2,3,6...): ").split(",")

print(sum([int(number) for number in a]) / len(a))

5.

import random

numbers = range(-2, 3)

random_array = random.sample(numbers, random.randint(1, 4))

positive = [numb for numb in random_array if int(numb) > 0]

print(sum(positive))

6.

import random

numberss = range(2, 11)

numbers = random.sample(numberss, random.randint(1, 9))

d = {"Чётные": 0, "Нечётные": 0}

for thing in numbers:

   if int(thing) % 2 == 0:

       d["Чётные"] += 1

   else:

       d["Нечётные"] += 1

print(f"Масив: {numbers}")

print(", ".join([f"{v}: {d[v]}" for v in d]))

7. Не сильно понял задачу, можно объяснить по-подробнее?)

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