Задание 8 | ЕГЭ по информатике | ДЕМО-2024

preview_player
Показать описание

Разбор демоверсии ЕГЭ по информатике 2024.
Задание 8 - Знание основных понятий и методов, используемых при измерении количества информации.
------

#егэ #информатика #разбор
Рекомендации по теме
Комментарии
Автор

Мой вариант
from itertools import permutations as p
print(sum(1 for i in p('0234567', 5) if i[0] != "0" and all(int(i[n]) % 2 != int(i[n + 1]) % 2 for n in range(4))))

erikc
Автор

По моему это задание быстрее решается логически на листке, но каждому своë

minichelik
Автор

Иван Викторович, если изначально взять в качестве первого аргумента в product все кроме 1, можно пропустить первую проверку, сократив тем самым запись?

DimanKofeman
Автор

А я смотрю на то, как двигается книжка "Метро 2035" из выпуска к выпуску

irgtnvb
Автор

Мне кажется, не было никакой необходимости преобразовывать кортеж в строку. Точно так же работа с кортежами была бы. Наоборот, вместо строки "01234567" легче было бы использовать range(8), тогда бы и преобразовывать потом в число не нужно было бы.
С версии Пайтона 3.10 есть функция itertools.pairwise.
Если, как другие сказали, убрать 1 и использовать permutations, остается только:
for digits in permutations([0, 2, 3, 4, 5, 6, 7], r=5):
if digits[0] != 0 and all(sum(pair) % 2 == 1 for pair in pairwise(digits)):
count += 1

sultan_mu
Автор

можно просто заменить все четные цифры на x и проверить, что нету строки xx )))

dedede
Автор

а если просто вместо product взять permutations

kfu.
Автор

Всë егэ по информатике в этом видео, задачи пишутся не по программированию, а по питону) Жаль что такое мракобесие приходится терпеть

forixsins
Автор

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

uzyeoto
Автор

Вам надо на С там, или Ассемблере писать! ) Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Где вот это все?! А где работа с восьмеричными числами? А тесты на эту белиберду где? Садись, два)

AlexeyDzuba
Автор

from itertools import product

cnt = 0
for i in product('01234567', repeat=5):
st = ''.join(i)
if i[0] != '0' and st.count('1') == 0 and len(st) == len(set(st)):
chet = ''.join([str(int(int(e) % 2 == 0)) for e in st])
if not (('00' in chet) or ('11' in chet)): cnt += 1
print(cnt)

Вот более короткая и оптимизированная версия!

daniild