понедельник, 2 декабря 2024 г.

Геометрическая вероятность

 Задача 1: В прямоугольник 

5×4 см2 вписан круг радиуса 1,5 см. Какова вероятность того, что точка, случайным образом поставленная в прямоугольник, окажется внутри круга?

Задача 2: На отрезок 
 длины 
, брошена точка М так, что любое ее положение на отрезке равновозможно. Найти вероятность того, что меньший из отрезков (
 или ) имеет длину, большую чем 



четверг, 28 ноября 2024 г.

камешки на одну кучку

def f(x,h):
if h==4:
if (x>=20) and (x<=26):
return 1
elif h==4 and x<20:
return 0
elif h<4 and x>=20:
return 0
else:
if h%2!=0:
return f(x+4, h+1) or f(x*2, h+1)
else:
return f(x+4, h+1) and f(x*2, h+1)
for x in range(1, 20):
if f(x, 1)==1:
print(x)


def f(x, h):
if h == 4:
if 20 <= x <= 26:
return 1
else:
return 0
elif h < 4:
if 20 <= x <= 26:
return 0
else:
if h % 2 != 0:
return f(x + 4, h + 1) or f(x * 2, h + 1)
else:
return f(x + 4, h + 1) and f(x * 2, h + 1)
for x in range(1, 20):
if f(x, 1) == 1:
print(x)

def f(x, h):
if h == 3:
if 20 <= x <= 26:
return 1
else:
return 0
elif h < 3:
if 20 <= x <= 26:
return 0
else:
if h % 2 == 0:
return f(x + 4, h + 1) or f(x * 2, h + 1)
else:
return f(x + 4, h + 1) and f(x * 2, h + 1)
for x in range(1, 20):
if f(x, 1) == 1:

 print(x) 

вторник, 26 ноября 2024 г.

s=0
for a1 in range(1,9):
   
for a2 in range(9):
       
for a3 in range(9):
           
for a4 in range(9):
               
for a5 in range(9):
                   
for a6 in range(9):
                       
for a7 in range(9):
                            st=
str(a1)+str(a2)+str(a3)+str(a4)+str(a5)+str(a6)+str(a7)
                           
if a1 % 2 == 0 and a7 % 3 != 0 and st.count("6")>=1:
                                s=s+
1
                               
print(st)
print(s)

 

for i in range(101,110):
a="5"*i
while ("555" in a) or ("11" in a) or ("2" in a):
if "555" in a:
a=a.replace("555","1",1)
if "11" in a:
a=a.replace("11", "25",1)
if "2" in a:
a=a.replace("2", "5",1)
if a=="15":
print(i)

for x in range(2031):
y=7**170+7**100-x
st=""
while y!=0:
st=st+str(y%7)
y=y//7
st=st[::-1]
if st.count("0")==71:
print(x)


def F(n):
if n==1:
return 1
if n>1:
return 2*n*F(n-1)
print(F(1000))

for a in range(0,50000):
a_fl=True
for x in range(0,50000):
if (((x&32765!=0) or (x&22635!=0))<=(x&a>0))==False:
a_fl=False
break
if a_fl==True:
print(a)

четверг, 21 ноября 2024 г.

ЕГЭ_2024

Задание 2. Умения строить таблицы истинности и логические схемы (базовый)

ЕГЭ-2025 ИНФОРМАТИКА

№16805 https://ege.sdamgia.ru/

Логическая функция F задаётся выражением (¬x ≡ z) → (y ≡ (wx)).

Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F. Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.

 Переменная 1

Переменная 2

Переменная 3

Переменная 4

Функция

???

???

???

???

F

0

0

0

0

0

0

0

0

0

0

 В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала  — буква, соответствующая первому столбцу; затем  — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно. 

Python:

for x in range(0,2):
   
for y in range(0, 2):
       
for z in range(0, 2):
            
for w in range(0, 2):
               
if not((not(x)==z)<=(y==(w or x))):
                   
print(x, y, z, w)
 

Ответ: yxwz

Автор: 11а


Задание 12. Умение анализировать результат исполнения алгоритма (повышенный)

ЕГЭ-2025 ИНФОРМАТИКА

№13517

https://ege.sdamgia.ru/

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

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

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w.

Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.

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

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

 Цикл

        ПОКА  условие     

              последовательность команд 

        КОНЕЦ ПОКА

выполняется, пока условие истинно.

 В конструкции

  ЕСЛИ  условие      

            ТО команда1     

            ИНАЧЕ команда2

   КОНЕЦ ЕСЛИ

выполняется команда1 (если условие истинно) или команда2 (если условие ложно).

 Какая строка получится в результате применения приведённой ниже программы к строке длины 101, в которой первый и последний символ  — это цифры 2, а остальные символы  — цифры 8?

В ответе запишите полученную строку.

  НАЧАЛО      

       ПОКА  нашлось (81) ИЛИ нашлось (882) ИЛИ нашлось (8883)           

           ЕСЛИ  нашлось (81)           

                ТО заменить (81, 2)          

                ИНАЧЕ ЕСЛИ  нашлось (882)               

                                 ТО заменить (882, 3)       

                                 ИНАЧЕ заменить (8883, 1)                

                КОНЕЦ ЕСЛИ        

           КОНЕЦ ЕСЛИ    

       КОНЕЦ ПОКА

      КОНЕЦ 

Python:

s="2"+"8"*99+"2"
while ("81" in s) or ("882" in s) or ("8883" in s):
   
if "81" in s:
        s=s.replace(
"81", "2",1)
   
else:
       
if "882" in s:
            s=s.replace(
"882", "3",1)
       
else:
            s=s.replace(
"8883", "1", 1)
print(s) 

Ответ: 283

Автор: 11а

Задание 16. Вычисление рекуррентных выражений

ЕГЭ-2025 ИНФОРМАТИКА

№36871. https://ege.sdamgia.ru/

 Алгоритм вычисления значения функции F(n), где n  — целое неотрицательное число, задан следующими соотношениями:

F(0)  =  0;

F(n)  =  F(n / 2), если n > 0 и при этом чётно;

F(n)  =  1 + F(n − 1), если n нечётно.

 Сколько существует таких чисел n, что 1 ≤ n ≤ 1000 и F(n)  =  3?

Python:

def F (n):
if n==0:
return 0
if n>0 and n%2==0:
return F(n//2)
if n%2! =0:
return 1+F(n-1)
k=0
for n in range(1, 1001):
if F(n)==3:
k=k+1
print(k)

Ответ: 120

Автор: 11а

Задание 19. Умение анализировать алгоритм логической игры

Задача на одну кучку.

ЕГЭ-2025 ИНФОРМАТИКА

№47223  https://ege.sdamgia.ru/

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

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

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

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

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

Python:

def f(x,h):
   
if h==3 and x>=129:
       
return 1
   
elif h==3 and x<129:
       
return 0
   
elif h<3 and x>=129:
       
return 0
   
else:
       
if h%2==0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
           
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x)
       
break

Ответ: 64

Автор: 11а

Задание 20. Умение найти выигрышную стратегию игры

 Задача на одну кучку.

ЕГЭ-2025. ИНФОРМАТИКА

№47224. https://ege.sdamgia.ru/

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

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

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

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

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

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

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

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

Python:

def f(x,h):
   
if (h==4) and x>=129:
       
return 1
   
elif h==4 and x<129:
       
return 0
   
elif h<4 and x>=129:
       
return 0
   
else:
       
if h%2!=0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
           
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x)
 

Ответ: 3623

Автор: 11а

Задание 21. Умение построить дерево игры по заданному алгоритму и найти выигрышную стратегию

Задача на одну кучку.


Задание 23. Умение анализировать результат исполнения алгоритма, содержащего ветвление и цикл (повышенный)

ЕГЭ-2025 ИНФОРМАТИКА

№15959 https://ege.sdamgia.ru/

Исполнитель РазДваТри преобразует число на экране.

У исполнителя есть три команды, которым присвоены номера.

1.  Прибавить 1.

2.  Умножить на 2.

3.  Умножить на 3.

Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья умножает его на 3.

Программа для исполнителя РазДваТри  — это последовательность команд.

Сколько существует программ, которые преобразуют исходное число 3 в число 50 и при этом траектория вычислений содержит число 15 и не содержит числа 33?

Траектория вычислений  — это последовательность результатов выполнения всех команд программы. Например, для программы 312 при исходном числе 6 траектория будет состоять из чисел 18, 19, 38.

Python:

def F(x, y):
   
if x>y or x==33:
       
return 0
   
if x==y:
       
return 1
   
else:
       
return F(x+1, y)+ F(x*2, y)+F(x*3, y)
print(F(3,15)*F(15,50)) 

Ответ: 121

Автор: 11а

Задание 19. Умение анализировать алгоритм логической игры

 Задача на одну кучку.

ЕГЭ-2025

ИНФОРМАТИКА

№47223

https://ege.sdamgia.ru/

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

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

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

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

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

Python:

def f(x,h):
   
if h==3 and x>=129:
       
return 1
   
elif h==3 and x<129:
       
return 0
   
elif h<3 and x>=129:
       
return 0
   
else:
       
if h%2==0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
           
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x)
       
break

Ответ: 64

Автор: 11а

Задание 20. Умение найти выигрышную стратегию игры

 Задача на одну кучку.

ЕГЭ-2025

ИНФОРМАТИКА

№47224

https://ege.sdamgia.ru/

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

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

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

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

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

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

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

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

Python:

def f(x,h):
   
if (h==4) and x>=129:
       
return 1
   
elif h==4 and x<129:
       
return 0
   
elif h<4 and x>=129:
       
return 0
   
else:
       
if h%2!=0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
           
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x)
 

Ответ: 3623

Автор: 11а

Задание 21. Умение построить дерево игры по заданному алгоритму и найти выигрышную стратегию

Задача на одну кучку.

ЕГЭ-2025.ИНФОРМАТИКА

№47225.https://ege.sdamgia.ru/

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

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

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

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

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

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

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

Если найдено несколько значений S, в ответе запишите минимальное из них.

Python:

def f(x,h):
   
if (h==3 or h==5) and x>=129:
       
return 1
   
elif h==5 and x<129:
       
return 0
   
elif h<5 and x>=129:
       
return 0
   
else:
       
if h%2==0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
            
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x) 
Ответ: 62 и 64 (но надо исключить вариант 1 хода Вани)
def f(x,h):
   
if (h==3) and x>=129:
       
return 1
   
elif h==3 and x<129:
       
return 0
   
elif h<3 and x>=129:
       
return 0
   
else:
       
if h%2==0:
           
return f(x+1, h+1) or f(x*2, h+1)
       
else:
           
return f(x+1, h+1) and f(x*2, h+1)
for x in range(1, 129):
   
if f(x, 1)==1:
       
print(x) 
Исключаем 64

Ответ: 62

Автор: 11а

Задание 24. Умение создавать собственные программы (10–20 строк) для обработки символьной информации (высокий уровень сложности)

ЕГЭ-2025 ИНФОРМАТИКА

№2538 kpolyakov.spb.ru

 

Текстовый файл 24-5.txt содержит последовательность из символов «(»и «)», всего не более 106 символов. Определите максимальное количество подряд идущих пар скобок «()» в этом файле.

 

 

 

Python:

f=open("2538.txt")
s=f.readline()
s=s.replace(
"()","*")
print(s)
n=
0
mx=0
for i in range(len(s)):
   
if s[i] in "*":
        n=n+
1
       
mx=max(mx,n)
   
else:
        n=
0
print(mx)

Ответ: 10

Автор: 11а


ЕГЭ-2025 ИНФОРМАТИКА

№4919 kpolyakov.spb.ru

Текстовый файл 24-241.txt состоит не более чем из 106 символов и содержит только латинские буквы A, B, C, D, E, F, O. Определите максимальное количество идущих подряд групп символов вида «гласная + гласная + согласная». 

 Python:

f=open("4919.txt")
s=f.readline()
s=s.replace(
"A","*A")
s=s.replace(
"B","B*")
a=s.split(
"*")
print(a)
k=
0
for i in a:
   
if len(i)>=20 and i.count("F")==2 and i[0]=="A" and i[-1]=="B":
        k=k+
1
print
(k) 

Ответ: 94

Автор: 11а


ЕГЭ-2025 ИНФОРМАТИКА

№6052 kpolyakov.spb.ru

 Текстовый файл 24-241.txt состоит не более чем из 106 символов и содержит только латинские буквы A, B, C, D, E, F, O. Определите максимальное количество идущих подряд групп символов вида «гласная + гласная + согласная».

 

 

 

 

Python:

f=open("6052.txt")
s=f.readline()
s=s.replace(
"A","G")
s=s.replace(
"B","S")
s=s.replace(
"C","S")
s=s.replace(
"D","S")
s=s.replace(
"F","S")
s=s.replace(
"E","G")
s=s.replace(
"O","G")
s=s.replace(
"GGS","*")
print(s)
n=
0
mx=0
for i in range(len(s)):
   
if s[i] in "*":
        n=n+
1
       
mx=max(mx,n)
   
else:
        n=
0
print
(mx) 

Ответ: 14

Автор: 11а