Научная статья на тему 'ОСОБЕННОСТИ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ КОМПЬЮТЕРНОГО ЕГЭ ПО ИНФОРМАТИКЕ'

ОСОБЕННОСТИ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ КОМПЬЮТЕРНОГО ЕГЭ ПО ИНФОРМАТИКЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1738
67
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЕГЭ ПО ИНФОРМАТИКЕ И ИКТ В КОМПЬЮТЕРНОЙ ФОРМЕ / АЛГОРИТМЫ РЕШЕНИЯ / ЯЗЫК PYTHON

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фирсова Светлана Александровна

В работе рассматриваются некоторые задачи КЕГЭ по информатике и приводятся алгоритмы их решения, программная реализация на языке Python.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

FEATURES OF SOLVING SOME PROBLEMS OF THE COMPUTER UNIFIED STATE EXAM IN COMPUTER SCIENCE

The paper considers some problems of the Unified State Exam in computer science and provides algorithms for their solution, software implementation in Python.

Текст научной работы на тему «ОСОБЕННОСТИ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ КОМПЬЮТЕРНОГО ЕГЭ ПО ИНФОРМАТИКЕ»

23 Практическая работа «Выражения в РНР» Применение выражений 1

24 Основы CSS Основные понятия. Правила CSS. Свойства. 1

25 Практическая работа «Применение CSS» Приобретение практических навыков для работы с таблицами стилей CSS. 2

26 Практическая работа «Работа над собственным проектом» Выполнение 4

Итого: 34

Знания, полученные в процессе изучения курса «Web-программирование с использованием языка РНР», могут быть использованы учащимися при создании собственных веб-страниц на различные тематики. Это может стать фундаментом в программировании и становлении в будущей профессиональной деятельности.

ЛИТЕРАТУРА

1. Распоряжение Правительства РФ от 29.12.2001 N 1756-р «О Концепции модернизации российского образования на период до 2010 года» // КонсультантПлюс. - URL: http://www.consultant.ru/cons/cgi/online.cgi?req=doc&base=EXP&n=242634#029801211173562203.

2. Письмо Минобрнауки РФ от 04.03.2010 N 03-413 «О методических рекомендациях по реализации элективных курсов» // Электронный фонд правовой и нормативно-технической информации - URL: http://docs.cntd.ru/document/902306291.

3. Федеральный закон от 29.12.2012 N 273-ФЗ (ред. от 30.04.2021) «Об образовании в Российской Федерации» //КонсультантПлюс.URL:

http://www.consultant.ru/document/cons_doc_LAW_140174/66c0c83e63d34f08870033f56479217971de7ae4.

С.А. Фирсова

ОСОБЕННОСТИ РЕШЕНИЯ НЕКОТОРЫХ ЗАДАЧ КОМПЬЮТЕРНОГО ЕГЭ

ПО ИНФОРМАТИКЕ

Аннотация. В работе рассматриваются некоторые задачи КЕГЭ по информатике и приводятся алгоритмы их решения, программная реализация на языке Python.

Ключевые слова: ЕГЭ по информатике и ИКТ в компьютерной форме, алгоритмы решения, язык Python.

S.A. Firsova

FEATURES OF SOLVING SOME PROBLEMS OF THE COMPUTER UNIFIED STATE

EXAM IN COMPUTER SCIENCE

Abstract. The paper considers some problems of the Unified State Exam in computer science and provides algorithms for their solution, software implementation in Python.

Key words: Unified State Exam in computer science and ICT in computer form, solution algorithms, Python language.

В 2021 году ЕГЭ по информатике и ИКТ пройдет в компьютерной форме.

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

47

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

Апробация проведения ЕГЭ в компьютерной форме (КЕГЭ), прошедшая в 2020 году, показала, что участники экзамена не испытывают трудностей при выполнении работы.

Практика показывает, что в целом тема «Программирование» не вызывает у школьников сложностей. Таким образом, 6, 17, 22 задачи КЕГЭ решаются легко.

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

Рассмотрим типы таких заданий более подробно и приведем решение на языке Python. Условия задач взяты в [ 1].

Рассмотрим прототип задачи 17 из КЕГЭ.

Задача 17.120. Определите количество принадлежащих отрезку [251763; 514827] натуральных чисел, которые делятся без остатка на сумму своих цифр, и наименьшее из таких чисел. В ответе запишите два целых числа: сначала количество, затем наименьшее число. Решение.

Можно попытаться решить задачу простым применением алгоритма нахождения суммы цифр числа, а затем делителей числа.

Программа может выглядеть следующим образом:

k=0

a=251763 b=514828 mi=b+1

for i in range (a, b+1):

s=0

x=i

while x>0: s+=x%10

x//=10

if i%s==0:

mi=min (i, mi) k+=1 print (k, mi)

25708 251775

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

Приведем пример программы, в которой сумма цифр числа находится несколько «искусственным» способом. k=0

a=251763 b=514828 mi=b+1

for i in range (a, b+1):

s=0

g=str(i)

for j in range (6): s+=int(g[j])

if i%s==0:

mi=min (i, mi) k+=1 print (k, mi)

25708 251775

Далее рассмотрим прототип задачи 25 из КЕГЭ.

Задача 25.24. Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [11275; 16328], числа, имеющие ровно 5 различных делителей. Выведите эти делители для каждого найденного числа в порядке возрастания. Решение.

Снова решим задачу простым применением алгоритма нахождения делителей числа. s=0

for i in range (11275,16329): k=0

for j in range (2, i//2+1): if i%j==0: k+=1 if k>3: break if k==3:

print ("1", end=" ") for j in range (2, i//2+1): if i%j==0:

print (j, end=" ") print(i)

1 11 121 1331 14641

Обратим внимание, что в этой задаче числа требуется искать на относительно небольшом промежутке - [11275; 16328]. В следующей задаче промежуток значительно больше.

Задача 25.130. Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Найдите все натуральные числа, принадлежащие отрезку [50034679; 92136895] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе само число и его наибольший нетривиальный делитель. Найденные числа расположите в порядке возрастания. Решение.

Если применить алгоритм предыдущей задачи, то снова получим долгое время выполнения программы. Следует оптимизировать данный алгоритм, возможно применив математические методы.

Вначале запустим предыдущую программу на относительно небольшом диапазоне чисел и проанализируем полученные результаты. s=0

for i in range (10,1000): k=0

for j in range (2, i//2+1): if i%j==0: k+=1 if k>3: break if k==3:

print ("1", end=" ") for j in range (2, i//2+1): if i%j==0:

print (j, end=" ") print(i)

1 2 4 8 16 1 3 9 27 81 1 5 25 125 625

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

Составим программу, с учетом найденной закономерности. Вначале извлечем корень четвертой степени из чисел 50034679 и 92136895, получим, соответственно, числа 84,104 и 97,973. Так как следует рассматривать натуральные числа, то промежуток будет иметь вид [85, 97], нетрудно заметить, насколько был сокращен диапазон чисел. На этом промежутке остается найти простые числа, четвертая степень таких чисел и будет искомым числом из диапазона, данного в условии задачи:

a=50034679 b=92136895

a1=int (50034679**(0.25)) +1 b1=int (92136895**(0.25)) for i in range (a1, b1+1): f=0

for j in range (2, i//2+1): if i%j==0: f+=1 break if f==0:

print (i**4, i**3)

62742241 704969 88529281 912673

Аналогично можно решить следующую задачу.

Задача 25.147. Найдите все натуральные числа, принадлежащие отрезку [103 000 000; 104 000 000], у которых ровно три различных чётных делителя. В ответе перечислите найденные числа в порядке возрастания, справа от каждого числа запишите его второй по величине нетривиальный делитель (не равный 1 и самому числу). Решение.

Используя «прямой» алгоритм, напишем программу и снова запустим ее на небольшом диапазоне.

for i in range (7,1000):

k=0

for j in range (2, i//2+1,2): if i%j==0: k+=1 if k>2: break if k==2: print(i)

8 18 50 98 242 338 578 722

Проанализировав результаты, найдем закономерность - ровно три различных чётных делителя имеют числа, являющиеся удвоенным квадратом простого числа. Обозначим числами a=103000000 и b=104000000 заданный промежуток. Далее, можно разделить на 2 числа а и в, извлечь квадратный корень из полученных значений, и привести к целому типу. К значению а1 требуется еще добавить 1. Далее в новом интервале [a1, b1] = [7177, 7211] достаточно найти простые числа, которые и будут являться вторыми по величине нетривиальными делителями.

a=103000000 b=104000000 a1=int((a//2)**(1/2))+1 b1=int((b//2)**(1/2)) print(a1,a1**2*2) print(b1,b1**2*2) for i in range(a1,b1+1): f=0

for j in range(2,i//2+1): if i%j==0: f+=1 break if f==0:

print(2*i**2,i)

7177 103018658 7211 103997042

103018658 7177 103305938 7187 103478498 7193 103881698 7207 103997042 7211

Приведем решение еще одной задачи типа 25.

Задача 25.147. Найдите все натуральные числа, N, принадлежащие отрезку [150 000 000; 300 000 000], которые можно представить в виде N = 2m • 3n, где m - чётное число, n - нечётное число. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа - сумму m+n.

Решение.

for i in range (150000000,300000001): if i%12==0 and int((i//12) **0.5) ==(i//12) **0.5: for n in range (1,200,2): for m in range (1,100): if 4**m*3**n==i:

print(i,2*m+n) break

181398528 21 201326592 27 229582512 19 254803968 25

ЛИТЕРАТУРА

1. Поляков, К.Ю. ЕГЭ по информатике: подготовка к ЕГЭ-2021 по информатике, разбор задач ЕГЭ-2021 по информатике, материалы для подготовки к ЕГЭ URL: http://kpolyakov.spb.ru)

Раздел II. Экономика и предпринимательство

О. В. Грищенко, М. В. Атепалихина ТЕНДЕНЦИИ РАЗВИТИЯ РЫНКА FOODTECH

Скажи мне, что ты ешь, и я скажу, кто ты

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(арабская пословица)

Аннотация. В статье рассмотрены причины и факторы, определяющие развитие рынка foodtech, выявлены основные направления развития рынка foodtech. Приведена сравнительная характеристика развития этого сегмента бизнеса по обозначенным направлениям в России и за рубежом.

Ключевые слова: технологии еды, инвестиции, продовольственная безопасность, альтернативные источники сырья, агроинновации, «умная цепь поставок», персонализированное питание.

O.V. Grishchenko, M.V. Atepalihina FOODTECH MARKET DEVELOPMENT TRENDS

Abstract. The article examines the reasons and factors that determine the development of the foodtech market, identifies the main directions of the foodtech market development. A comparative characteristic of the development of this business segment in the designated areas in Russia and abroad is given.

Key words: food technology, investment, food security, alternative sources of raw materials, agroinnovation, smart supply chain, personalized nutrition.

С современном, быстроизменяющемся мире IT-технологии проникают во все стороны жизни человека, не обошли они и рынок продуктов питания. Уже достаточно привычным и понятным становится термин foodtech (food technology) - технологии еды. Это понятие включает в себя производство, приготовление и доставку еды с использованием IT-решений. Во всем мире данный сегмент бизнеса активно развивается, а мировой рынок foodtech-стартапов стал одним из самых быстрорастущих. В России такой бизнес также неуклонно растет. Поэтому рассмотрение трендов развития этого бизнеса представляется актуальным.

Цель исследования - выявить место сегмента foodtech на рынке продуктов питания и тенденции его развития России.

i Надоели баннеры? Вы всегда можете отключить рекламу.