вторник, 13 мая 2025 г.

11 класс

 1.  На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1.  Строится двоичная запись числа N.

2.  Далее эта запись обрабатывается по следующему правилу:

а)  если число чётное, то к двоичной записи числа слева дописывается 10;

б)  если число нечётное, то к двоичной записи числа слева дописывается 1 и справа дописывается 01.

Полученная таким образом запись является двоичной записью искомого числа R.

Например, для исходного числа 410  =  1002 результатом будет являться число 2010  =  101002, а для исходного числа 510  =  1012 результатом будет являться число 1101012  =  5310.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее, чем 516. В ответе запишите это число в десятичной системе счисления.

for n in range(1,1000):
s=bin(n)[2:]
s=str(s)
if n%2==0:
s="10"+s
else:
s="1"+s+"01"
r = int(s, 2)
if r>516:
print(n)
break

2.  Исполнитель Черепаха передвигается по плоскости и оставляет след в виде линии. Черепаха может выполнять две команды: Вперёд n (n  — число) и Направо m (m  — число). По команде Вперёд n Черепаха перемещается вперёд на n единиц. По команде Направо m Черепаха поворачивается на месте на m градусов по часовой стрелке, при этом соответственно меняется направление дальнейшего движения.

Запись Повтори k [Команда1 Команда2Команда S] означает, что заданная последовательность из S команд повторится k раз.

Черепаха выполнила следующую программу:

Повтори 11 [Вперёд 36 Направо 72].

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

3.  Полина составляет 6-⁠буквенные коды из букв П, О, Л, И, Н, А. Каждую букву нужно использовать ровно 1 раз, при этом нельзя ставить подряд две гласные или две согласные. Сколько различных кодов может составить Полина?

from itertools import * # это мощный и эффективный инструмент в Python
для работы с последовательностями данных, особенно полезный для задач,
требующих генерации комбинаций, перестановок или других сложных итераций
k = 0 #счетчик k
for p in permutations('ПОЛИНА'): #перебор всех вариантов
s = ''.join(p) #Преобразуем кортеж символов 'p' в строку 's'
s = s.replace('Л', '1').replace('Н', '1').replace('П', '1') #Замена всех согласных на 1
s = s.replace('О', '0').replace('И', '0').replace('А', '0') #Замена всех согласных на 0
if '11' not in s and '00' not in s: # нет ни "00", ни "11"
k=k+1
print(k)

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

—  все числа в строке различны;

—  нечётных чисел больше, чем чётных;

—  сумма нечётных чисел меньше суммы чётных.

В ответе запишите число  — количество строк, для которых выполнены эти условия.

Задание 9


f=open("1.txt")
k=0
for i in f:
s=i.split()
a=sorted([int(i) for i in s])
nech=0
ch=0
snech=0
sch=0
for i in range(len(a)):
if a[i]%2!=0:
nech=nech+1
snech=snech+a[i]
else:
ch = ch + 1
sch = sch+a[i]
if (nech > ch) and (snech < sch) and (len(a) == len(set(a))):
k=k+1
print(k)

5.  Исполнитель Редактор получает на вход строку цифр и преобразует её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.

А)  заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.

Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

Б)  нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.

 

Дана программа для редактора:

НАЧАЛО

                ПОКА НЕ нашлось (00)

                        заменить (01, 220)

                        заменить (02, 1013)

                        заменить (03, 120)

                КОНЕЦ ПОКА

КОНЕЦ

 

Известно, что в исходной строке A было ровно два нуля  — на первом и на последнем месте, а после выполнения данной программы получилась строка B, содержащая 13 единиц и 18 двоек.

Какое наименьшее количество цифр могло быть в строке A?

mi=100000000
for x in range(50):
for y in range(50):
for z in range(50):
n = '0' + '1'*x + '2'*y + '3'*z +'0'
while '00' not in n:
if '01' in n:
n = n.replace('01', '220', 1)
elif '02' in n:
n = n.replace('02', '1013', 1)
elif '03' in n:
n = n.replace('03', '120', 1)

if n.count('1') == 13 and n.count('2') == 18:
s = x + y + z
mi = min(mi, s)
print(mi + 2)

Ответ: 10

6.  Маской подсети называется 32-⁠разрядное двоичное число, которое определяет, какая часть IP-⁠адреса компьютера относится к адресу сети, а какая часть IP-⁠адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-⁠адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-⁠адресе компьютера для адреса компьютера в подсети, имеют значение 0.

Если маска подсети 255.255.255.224 и IP-⁠адрес компьютера в сети 162.198.0.157, то порядковый номер компьютера в сети равен _____.

255.255.255.224

162.198.0.157

--------------------

11111111. 11111111 .11111111 .11100000

10100010.1100 0110.00000000.10011101

11101(2)->>29(10)

Ответ:29

7.  Числа AB967D8p и E435A98p записаны в системе счисления При каком минимальном p сумма этих чисел будет делиться на p − 1?

for p in range(15, 100):
a1 = 10*p**6 + 11*p**5 + 9*p**4 + 6*p**3 + 7*p**2 + 13*p**1 + 8
a2 = 14*p**6 + 4*p**5 + 3*p**4 + 5*p**3 + 10*p**2 + 9*p**1 + 8
if (a1 + a2) % (p - 1) == 0:
print(p)
break

Ответ: 40

8.  Для какого наименьшего целого неотрицательного числа A выражение

(2x + 3y ≠ 60) ∨ (Ax) ∨ (Ay)

тождественно истинно при любых целых неотрицательных x и y?

for A in range(1, 1000):
fl=True
for x in range(1, 1000):
for y in range(1, 1000):
if ((2*x+3*y!=60) or (A>=x) or(A>=y))==False:
fl=False
break
if fl==True:
print(A)
break

Ответ:12

9.  В файле содержится последовательность из 10 000 натуральных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых различные остатки от деления на d  =  160 и хотя бы одно из чисел делится на p  =  7, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.

Пример входных данных:

168

7

320

328

Пример выходных данных для приведённого выше примера входных данных:

4 488

Пояснение. Из 4 чисел можно составить 6 пар. В данном случае условиям удовлетворяют пары: 168 и 320, 168 и 7, 320 и 7, 328 и 7. Максимальную сумму дает пара 168 и 320  — 488.

17.txt

Ответ:

10.  Робот стоит в левом верхнем углу прямоугольного поля, в каждой клетке которого записано целое положительное число. За один ход робот может переместиться на одну клетку вправо, вниз или по диагонали вправо вниз.

На каждый шаг вправо робот затрачивает 15 единиц энергии, на шаг вниз  — 20 единиц, на шаг по диагонали  — 10 единиц. В каждой клетке, включая начальную и конечную, робот пополняет запас энергии на величину, равную записанному в этой клетке числу. В начальный момент (до подзарядки в начальной клетке) запас энергии робота равен нулю.

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

В ответе запишите два числа: сначала максимально возможное значение, затем минимально возможное.

Исходные данные записаны в электронной таблице. Пример входных данных (для таблицы размером 4 × 4):

Задание 18

43472535
49528364
9782232
3678574

 

При указанных входных данных максимальное значение 303 получится при движении по маршруту 43 → 49 → 52 → 83 → 22 → 85 →R 9; 74, а минимальное значение 141 при движении по маршруту 43 → 49 → 8 → 22 → 74. В ответе в данном случае надо записать числа 303 и 141.

 

Ответ:

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

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

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

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

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

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

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

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

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

Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

—  Петя не может выиграть за один ход;

—  Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания без разделительных знаков.

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

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

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

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

Найдите минимальное значение S, при котором одновременно выполняются два условия:

—  у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

—  у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.

Комментариев нет:

Отправить комментарий