Найти в Дзене
🌟 12 задание Информатика ЕГЭ задача № 8425 с сайта Полякова К.Ю. t.me/...inf Условие задачи 😳 ------------------------ На ленте исполнителя МТ в соседних ячейках записано двоичное представление целого положительного числа без ведущих нулей. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей справа от последовательности ячейке. Программа для исполнителя: λ   0   1 q0   λ, L, q1   -   - q1   λ, S, q1   1,L, q1   0,L, q1 Команды движения каретки: L – влево, R – вправо, N – отсутствие сдвига, S – стоп. После выполнения программы на ленте оказалась двоичная запись числа 156. Определите десятичное значение наибольшего числа, меньшего, чем 10000, которое могло быть записано на ленте до начала работы программы. Код на python: for i in range(9999, 0, -1):    s = bin(i)[2:]    # инвертируем строку    s2 = ''.join('1' if t == '0' else '0' for t in s)    if int(s2, 2) == 156:    print(i)    break Код на PascalABC.NET: RAnge(9999,1,-1) .Where(s->dec(bin(s).Select(t->t='0'?'1':'0').joinToString,2) = 156) .first .print; ✨Ответ: 8035
1 месяц назад
Задача №15 ЕГЭ по информатике по мотивам сборника Крылова 2026 ********************************************************************************************************** (№ 8409) (И. Карпачёв) На числовой прямой дан отрезок A = [4; 82]; B – множество всех натуральных делителей числа 211, отличных от единицы и от самого числа 211; C – множество всех натуральных делителей некоторого натурального числа y, отличных от единицы и от самого числа y (число y таково, что множество C непустое). Укажите значение y, имеющее максимальное количество делителей, для которого выражение: ((x ∈ B) ∨ ¬(x ∈ A)) → ¬(x ∈ C) тождественно истинно (т.е. принимает значение 1 при любом натуральном значении переменной х)? ********************************************************************************************************** Решение на современном pascalabc.net ## uses school; function f(x,y:integer):boolean; begin  var a:=x in range(4,82);  var b:=x in 211.divisors?[1:^1];  var c:=x in y.divisors?[1:^1];  if not y.IsPrime then   result:=(b or not a)<=(not c)  else   result:=false; end; (1..10000) .Where(y -> ((1..1000).All(x->f(x,y)))) .Select(y->(y, y.divisors.count)) .MaxBy(y->y[1]) .Print; Решение на python: def allDivs( x ):  divs = []  d = 2  while d*d <= x:   if x % d == 0:    divs.append( d )    if x // d > d:    divs.append( x//d )   d += 1  return sorted(divs) def f(x,y):  a = 4<=x<=82  b = x in allDivs(211)  c = x in allDivs(y)  if len(allDivs(y))>0:   return (b or (not a)) <=(not c) q = [] for y in range(1,10000):  if all(f(x,y) for x in range(1,1000)):   q+=[(y,len(allDivs(y)))] q.sort(key = lambda x: (x[1])) print(q[-1]) @Информатика Сегодня
243 читали · 3 месяца назад
📎 24 задание на обработку строк решаем через регулярные выражения (№ 5645) (П. Финкель) Текстовый файл 24-230.txt состоит не более чем из 10^6 символов и содержит буквы английского алфавита и цифры. Определите максимальное число в этом файле, ограниченное двумя парами символов ZZ и удовлетворяющее маске «8???54???22», где символ ? обозначает любую цифру. Пример такого числа: 81235412322. Найдите произведение нечётных цифр найденного числа. #regex #регулярки #findall Решение на Python: import re s=open('24-230.txt').readline() l=re.findall(r'ZZ8\d{3}54\d{3}22ZZ',s) t = (max(int(x[2:-2]) for x in l)) p = 1 for x in str(t):   if x in '13579':    p*=int(x) print(p) Решение на pascalabc.net ## ReadAllText('24-230.txt') .MatchValues('ZZ8\d{3}54\d{3}22ZZ') .Select(t->t[3:^2].ToBigInteger) .max.ToString .Where(t->t in '13579') .Select(t->StrToInt(t)) .Product .Print;
9 месяцев назад
Решаем 24.4917 задание через регулярные выражения (№ 4917) Текстовый файл 24-191.txt содержит строку из заглавных латинских букв, всего не более чем из 10^6 символов. Определите количество подстрок длиной не менее 20 символов, которые начинаются буквой A, заканчиваются буквой B и не содержат других букв A и B, кроме первой и последней. Pascal: ## ReadAllText('24-191.txt') .MatchValues('[A][C-Z]+[B]') .Select(s -> s.Length) .count(t -> t >= 20) .print; Python import re k=0 s=open('24-191.txt').readline() r=re.findall(r'[A][C-Z]+[B]',s) print(len([x for x in r if len(x)>=20]))
9 месяцев назад
finditer() vs findall() Если вы осваиваете регулярные выражения, то в какой-то момент у вас возникнем вопрос: "В чем разница между функциями finditer() и findall()". Простой пример на python иллюстрирует эту разницу: import re s = 'ABBCAABAAAABD' r = re.finditer(r'(AA)+',s) r2 = re.findall(r'(AA)+',s) for x in r:   print(x[0]) print('---') for x in r2:   print(x)
10 месяцев назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала