В данный момент я уехал в другой город. К сожалению, свой ПК я взять не смог, поэтому приостанавливаю работу над игрой. Однако, поскольку мне сдавать ОГЭ в следующем году, я начинаю подготовку по информатике. Буду публиковать задания, решения и ответы.
Тип 1:
Решение:
Исходный текст:
«Мята, тыква, фасоль, артишок, патиссон, лагенария — овощи»
Условие:
Каждый символ кодируется 32 битами (UTF-32).
Ученик вычеркнул одно слово из списка, а также лишние запятую и пробел.
Размер текста уменьшился на 28 байт.
Нужно найти вычеркнутое слово.
🔢 Решение:
1️⃣ Переводим байты в биты:
28 байт = 28 × 8 = 224 бита.
2️⃣ Считаем, сколько символов удалено:
В UTF-32 1 символ = 32 бита, значит:
224 бита / 32 = 7 символов удалено.
3️⃣ Учитываем, что удалили не только слово, но и запятую + пробел:
7 (всего) − 2 (запятая и пробел) = 5 символов (длина слова).
4️⃣ Смотрим список овощей и ищем слово из 5 букв:
Мята (4) ❌
Тыква (5) ✔
Фасоль (6) ❌
Артишок (7) ❌
Патиссон (8) ❌
Лагенария (9) ❌
✅ Проверка:
Удалено: "тыква" (5) + ", " (2) = 7 символов → 7 × 32 бита = 224 бита = 28 байт. Всё сходится!
📌 Ответ: тыква
Решение:
Исходный текст:
«Мята, тыква, фасоль, артишок, патиссон, лагенария — овощи»
Условие:
Каждый символ кодируется 32 битами (UTF-32).
Ученик вычеркнул одно слово из списка, а также лишние запятую и пробел.
Размер текста уменьшился на 28 байт.
Нужно найти вычеркнутое слово.
🔢 Решение:
1️⃣ Переводим байты в биты:
28 байт = 28 × 8 = 224 бита.
2️⃣ Считаем, сколько символов удалено:
В UTF-32 1 символ = 32 бита, значит:
224 бита / 32 = 7 символов удалено.
3️⃣ Учитываем, что удалили не только слово, но и запятую + пробел:
7 (всего) − 2 (запятая и пробел) = 5 символов (длина слова).
4️⃣ Смотрим список овощей и ищем слово из 5 букв:
Мята (4) ❌
Тыква (5) ✔
Фасоль (6) ❌
Артишок (7) ❌
Патиссон (8) ❌
Лагенария (9) ❌
✅ Проверка:
Удалено: "тыква" (5) + ", " (2) = 7 символов → 7 × 32 бита = 224 бита = 28 байт. Всё сходится!
📌 Ответ: тыква
Исходный текст:
«еж, лев, слон, олень, полень, носорог, крокодил, аллигатор — дикие животные»
Условие:
Кодировка: 16 бит на символ (Unicode).
Удалено одно слово + лишние запятая и пробел.
Размер уменьшился на 16 байт.
Найти вычеркнутое животное.
🔢 Решение:
16 байт = 128 бит (т.к. 1 байт = 8 бит).
128 бит / 16 бит = 8 символов удалено.
8 символов – 2 (запятая и пробел) = 6 символов (длина слова).
Проверяем слова из списка:
еж (2) ❌
лев (3) ❌
слон (4) ❌
олень (5) ❌
полень (6) ✔
носорог (7) ❌
крокодил (8) ❌
аллигатор (9) ❌
✅ Ответ: полень
«еж, лев, слон, олень, полень, носорог, крокодил, аллигатор — дикие животные»
Условие:
Кодировка: 16 бит на символ (Unicode).
Удалено одно слово + лишние запятая и пробел.
Размер уменьшился на 16 байт.
Найти вычеркнутое животное.
🔢 Решение:
16 байт = 128 бит (т.к. 1 байт = 8 бит).
128 бит / 16 бит = 8 символов удалено.
8 символов – 2 (запятая и пробел) = 6 символов (длина слова).
Проверяем слова из списка:
еж (2) ❌
лев (3) ❌
слон (4) ❌
олень (5) ❌
полень (6) ✔
носорог (7) ❌
крокодил (8) ❌
аллигатор (9) ❌
✅ Ответ: полень
Важный момент! По условию сказано - "Ученик вычеркнул из списка", так что обобщающие слова "дикие животные, овощи" мы не считаем!
Тип 2:
Решение:
Рассмотрим таблицу и зашифрованное сообщение:
Начинаем с сообщения. Заметим, что оно начинается с +. В таблице нет ни одной буквы, начинающейся с +, кроме О (т.к нет букв с +~).
Первая буква: О
Остаток: ~ + ~ + @@ ~ +
Далее идёт ~. В таблице есть две буквы, начинающиеся на ~: Л и И.
Если выбрать И, то начало слова будет "ОИ..." — это бессмыслица.
Значит, вторая буква: Л
Остаток: ~ + @@ ~ +
Подходит только буквы Л и И.
ОЛЛ - звучит странно, убираем.
Третья буква: И
Остаток: + @@ ~ +
Далее +. Выбор между М и О.
Если выбрать О, то слово начнёт выглядеть как "ОЛИО..." — не подходит.
Значит, четвёртая буква: М
Остаток: @ ~ +
Подходит только буква П
Итоговое слово: ОЛИМП ✅
Решение:
Рассмотрим таблицу и зашифрованное сообщение:
Начинаем с сообщения. Заметим, что оно начинается с +. В таблице нет ни одной буквы, начинающейся с +, кроме О (т.к нет букв с +~).
Первая буква: О
Остаток: ~ + ~ + @@ ~ +
Далее идёт ~. В таблице есть две буквы, начинающиеся на ~: Л и И.
Если выбрать И, то начало слова будет "ОИ..." — это бессмыслица.
Значит, вторая буква: Л
Остаток: ~ + @@ ~ +
Подходит только буквы Л и И.
ОЛЛ - звучит странно, убираем.
Третья буква: И
Остаток: + @@ ~ +
Далее +. Выбор между М и О.
Если выбрать О, то слово начнёт выглядеть как "ОЛИО..." — не подходит.
Значит, четвёртая буква: М
Остаток: @ ~ +
Подходит только буква П
Итоговое слово: ОЛИМП ✅
Решение:
Начнем с первой строчки: 10111101
Нам походят буквы - К и Н
Подставляем К:
К (101), остаток - 11101
О (111), остаток - 01
А (01)
Получилось - КОА
Подставляем Н:
Н (10), остаток 111101
О (111), остаток - 101
К (101)
Получилось НОК
Строчка не подходит (имеет 2 расшифровки).
1010110:
Поставляем К:
К (101), остаток 0110
А (01), остаток 10
Н (10)
Получилось КАН
Подставляем Н:
Н (10), остаток 10110
К (101), остаток 10
Н (10)
Получилось НКН
Или:
Н (10), остаток 10110
Н (10), остаток 110
110 не существует
Строчка не подходит (имеет 2 расшифровки).
10111000:
Подставляем К:
К (101), остаток 11000
110 не существует
Подставляем Н:
Н (10), остаток 111000
О (111), остаток 000
С (000)
Получилось НОС
Ответ: НОС
Важный момент! Ответ должен подходить под условие "имеет только ОДНУ расшифровку". Нас просят указать не номер строчки, а именно слово.
Начнем с первой строчки: 10111101
Нам походят буквы - К и Н
Подставляем К:
К (101), остаток - 11101
О (111), остаток - 01
А (01)
Получилось - КОА
Подставляем Н:
Н (10), остаток 111101
О (111), остаток - 101
К (101)
Получилось НОК
Строчка не подходит (имеет 2 расшифровки).
1010110:
Поставляем К:
К (101), остаток 0110
А (01), остаток 10
Н (10)
Получилось КАН
Подставляем Н:
Н (10), остаток 10110
К (101), остаток 10
Н (10)
Получилось НКН
Или:
Н (10), остаток 10110
Н (10), остаток 110
110 не существует
Строчка не подходит (имеет 2 расшифровки).
10111000:
Подставляем К:
К (101), остаток 11000
110 не существует
Подставляем Н:
Н (10), остаток 111000
О (111), остаток 000
С (000)
Получилось НОС
Ответ: НОС
Важный момент! Ответ должен подходить под условие "имеет только ОДНУ расшифровку". Нас просят указать не номер строчки, а именно слово.
Тип 3
Есть 2 способа решить эту задачу. Начнем с логического:
НЕ (X <= 15) И (X < 20)
Все равно что
(X > 15) и (X < 20)
Соответственно нам подойдут числа из промежутка (16; 19)
По условию нам нужно наибольшее - 19
Второй способ (код):
На python код выглядит так:
Однако можно сделать иначе:
В ответе получаем число 19
Есть 2 способа решить эту задачу. Начнем с логического:
НЕ (X <= 15) И (X < 20)
Все равно что
(X > 15) и (X < 20)
Соответственно нам подойдут числа из промежутка (16; 19)
По условию нам нужно наибольшее - 19
Второй способ (код):
На python код выглядит так:
a = [] # Создаем массив подходящих значений
for x in range (0, 20): # Делаем перебор возможных значений x (0, 20)
if not(x <= 15) and (x < 15): # Добавляем условие
a.append(x) # Если число нам подходит, помещаем его в массив
print(max(a)) # выводим максимальное значение массива
Однако можно сделать иначе:
for x in range (20, 0, -1): # Делаем перебор возможных значений x в обратном порядке (от большего к меньшему)
if not(x <= 15) and (x < 20): # Добавляем условие
print(x) # Выводим значение
break # Завершаем цикл (первое число максимальное)
В ответе получаем число 19
Тип 6
1:
Найдем в списке значения, удовлетворяющие условию:
(11, 2); (1, 12); (11, 12); (–11, 12); (–12, 11)
Всего их 5
2:
Ответ: 5
1:
Найдем в списке значения, удовлетворяющие условию:
(11, 2); (1, 12); (11, 12); (–11, 12); (–12, 11)
Всего их 5
2:
def f(s, t): #Создаем функцию проверки
if s > 10 or t > 10: # Проверяем удовлетворяет ли значение условию
return 1 # Т.к нам нужно Yes возвращаем 1
else:
return 0 # Если нет, возвращаем 0
a = ((1, 2), (11, 2), (1, 12), (11, 12), (-11, -12), (-11, 12), (-12, 11), (10, 10), (10, 5)) #Создаем массив данных в задаче значений
kol = 0
for i in range(9):
kol += f(a[i][0], a[i][1]) # Перебираем двумерный массив, вызывая функцию f
print(kol)
Ответ: 5
1:
Найдем в списке значения, удовлетворяющие условию:
(9, 9); (8, 5); (–5, 9); (4, 5); (8, 6)
Ответ: 5
2:
Ответ 5
Найдем в списке значения, удовлетворяющие условию:
(9, 9); (8, 5); (–5, 9); (4, 5); (8, 6)
Ответ: 5
2:
def f(s, t):
if s > 9 or t > 9:
return 0 # Ставим 0, т.к нужно узнать сколько было "NO"
else:
return 1
a = ((9, 9), (9, 10), (8, 5), (11, 6), (-11, 10), (-5, 9), (-10, 10), (4, 5), (8, 6))
kol = 0
for i in range(9):
kol += f(a[i][0], a[i][1])
print(kol)
Ответ 5
Сейчас разберу одно из неприятных заданий. Это достаточно редкий тип 7 - восстановление ip адреса
Тип 7
Немного теории:
IP-адрес — это цифровой адрес, состоящий из двух частей: адреса сети и адреса хоста. Он включает в себя четыре октета и занимает 32 бита (4 байта).
Октет — это число в диапазоне от 0 до 255 (Для компа ip адрес выглядит в двоичной системе счисления. Из-за этого 1 байт вмещает числа только до 255) . Например:
93.158.134.3 — Yandex.ru
Возвращаемся к задаче.
Получается каждый октет ip адреса вмещает числа до 255.
Возьмем самое большое данное число - 16, ставим в начало.
Теперь нам нужно подобрать к нему второе число, так чтобы оно не было больше 255
Возьмем число 2.17
Получим: 162.17
.65 взять не можем т.к последним идет 8.121 и получится .658.121, октет .658 больше 255, соответственно так делать нельзя.
Ставим 8.121
Получаем - 162.178.121
Добавляем .65
Результат - 162.178.121.65
Проверяем не противоречит ли это условию (октет не больше 255)
Ответ: БАГВ
Немного теории:
IP-адрес — это цифровой адрес, состоящий из двух частей: адреса сети и адреса хоста. Он включает в себя четыре октета и занимает 32 бита (4 байта).
Октет — это число в диапазоне от 0 до 255 (Для компа ip адрес выглядит в двоичной системе счисления. Из-за этого 1 байт вмещает числа только до 255) . Например:
93.158.134.3 — Yandex.ru
Возвращаемся к задаче.
Получается каждый октет ip адреса вмещает числа до 255.
Возьмем самое большое данное число - 16, ставим в начало.
Теперь нам нужно подобрать к нему второе число, так чтобы оно не было больше 255
Возьмем число 2.17
Получим: 162.17
.65 взять не можем т.к последним идет 8.121 и получится .658.121, октет .658 больше 255, соответственно так делать нельзя.
Ставим 8.121
Получаем - 162.178.121
Добавляем .65
Результат - 162.178.121.65
Проверяем не противоречит ли это условию (октет не больше 255)
Ответ: БАГВ
Берем число 23, к нему подходят 3.232 и 3.20, берем 3.20 (т.к если возьмем 3.232 получим 3.2323, или 3.232.333.20)
Получаем - 233.20
Добавляем 3.232 и .33
Результат - 233.203.232.33
Ответ: ГВБА
Получаем - 233.20
Добавляем 3.232 и .33
Результат - 233.203.232.33
Ответ: ГВБА
Немного базы для следующего задания:
URL (Uniform Resource Locator — «унифицированный указатель ресурса») — это адрес ресурса в интернете
Пример: https://yandex.ru/maps
Url всегда начинается с протокола, их существует всего 3 вида (основные, есть и другие):
http, https, ftp
http - устаревший и незащищенный протокол
https - современная версия протокола http (с доб защитой в виде SSL сертификата), работает на большинстве сайтов
ftp - протокол для передачи данных (используется на серверах и базах данных)
После протокола обязательно идет ://
За ним идет имя сайта, которое делится на домены, возьмем основные 2:
Домен второго уровня (SLD - Second Level Domain) - имя сайта, например: yandex, google, mail
Домен верхнего уровня (TLD - Top Level Domain) указывает на глобальную зону? примеры:
.com — для коммерческих сайтов;
.ru — национальный домен для России;
.org — для некоммерческих организаций;
.edu — для образовательных учреждений;
.gov — для правительственных сайтов.
После имени идет Путь к ресурсу. Всегда начинается с /. Может вести как на страницу, так и на файл. Примеры:
/search
/photo.jpg
За ним идут Параметры. Начинаются с ?. Содержат дополнительные данные для запроса. примеры:
?theme=light
?lang=ru&oc=windows
И в конце идет Якорь Определяет конкретное место на странице (например, #section1).
Url содержит:
1. Протокол + ://
2. Домен второго уровня
3. Домен верхнего уровня
4. Путь к ресурсу
5. Параметры
6. Якорь
URL (Uniform Resource Locator — «унифицированный указатель ресурса») — это адрес ресурса в интернете
Пример: https://yandex.ru/maps
Url всегда начинается с протокола, их существует всего 3 вида (основные, есть и другие):
http, https, ftp
http - устаревший и незащищенный протокол
https - современная версия протокола http (с доб защитой в виде SSL сертификата), работает на большинстве сайтов
ftp - протокол для передачи данных (используется на серверах и базах данных)
После протокола обязательно идет ://
За ним идет имя сайта, которое делится на домены, возьмем основные 2:
Домен второго уровня (SLD - Second Level Domain) - имя сайта, например: yandex, google, mail
Домен верхнего уровня (TLD - Top Level Domain) указывает на глобальную зону? примеры:
.com — для коммерческих сайтов;
.ru — национальный домен для России;
.org — для некоммерческих организаций;
.edu — для образовательных учреждений;
.gov — для правительственных сайтов.
После имени идет Путь к ресурсу. Всегда начинается с /. Может вести как на страницу, так и на файл. Примеры:
/search
/photo.jpg
За ним идут Параметры. Начинаются с ?. Содержат дополнительные данные для запроса. примеры:
?theme=light
?lang=ru&oc=windows
И в конце идет Якорь Определяет конкретное место на странице (например, #section1).
Url содержит:
1. Протокол + ://
2. Домен второго уровня
3. Домен верхнего уровня
4. Путь к ресурсу
5. Параметры
6. Якорь
Теперь переходим к самому заданию - наиболее частая задача 7 типа
Вспоминаем из чего состоит url
Начинаем с протокола:
http://
Далее домен 2 уровня:
http://game
И верхнего уровня:
http://game.com
После следует путь к ресурсу:
http://game.com/start.exe
Ответ: ГЖДЕБАВ
Вспоминаем из чего состоит url
Начинаем с протокола:
http://
Далее домен 2 уровня:
http://game
И верхнего уровня:
http://game.com
После следует путь к ресурсу:
http://game.com/start.exe
Ответ: ГЖДЕБАВ
Протокол - http
http://
Домен 2 уровня:
http://bibl
Домен верхнего уровня:
http://bibl.ru
Путь к ресурсу:
http://bibl.ru/book.txt
Ответ: ЕАВДЖБГ
http://
Домен 2 уровня:
http://bibl
Домен верхнего уровня:
http://bibl.ru
Путь к ресурсу:
http://bibl.ru/book.txt
Ответ: ЕАВДЖБГ
👍1
Такс... Я был немножко занят в эти дни. Но завтра продолжу подготовку к Огэ и буду доделывать игру.
И так, тип 8:
В данном случае | ("ИЛИ") Означает ВСЕ страницы, включающие и угол и прямую
& ("И") Означает ВСЕ страницы, содержащие ТОЛЬКО угол и прямую
Т.е:
Угол + Прямая + Угол & Прямая = Угол | Прямая
Внимание! В таблице представлены Угол, Прямая уже содержащие страницы Угол & Прямая
Что в итоге делаем то? Находим страницы запроса Прямая (без запроса Угол)
180 - 60 = 120
Теперь найдем Угол & Прямая:
140 - 120 = 20 тыс. страниц
Ответ: 20
В данном случае | ("ИЛИ") Означает ВСЕ страницы, включающие и угол и прямую
& ("И") Означает ВСЕ страницы, содержащие ТОЛЬКО угол и прямую
Т.е:
Угол + Прямая + Угол & Прямая = Угол | Прямая
Внимание! В таблице представлены Угол, Прямая уже содержащие страницы Угол & Прямая
Что в итоге делаем то? Находим страницы запроса Прямая (без запроса Угол)
180 - 60 = 120
Теперь найдем Угол & Прямая:
140 - 120 = 20 тыс. страниц
Ответ: 20
Тип 9
Все дороги представлены векторами. т.е мы можем двигаться только в 1 направлении, назад идти не можем
Посчитаем последовательно количество путей до каждого из городов:
А = 1; Начало пути считаем за единицу
Б = 1; В пункт Б ведет только 1 путь
В = А + Б = 1 + 1 = 2; В пункт В ведет 2 пути: А -> В, Б -> В
Д = А = 1;
Г = А + Д = 1 + 1 = 2;
Е = Б + В = 1 + 2 = 3;
Ж = Д + Г = 1 + 2 = 3;
З = В + Г + Е + Ж = 2 + 2 + 3 + 3 = 10;
И = Е = 3;
К = Ж = 3;
И складываем все пути
Л = Е + Ж + З + И + К = 3 + 3 + 10 + 3 + 3 = 22.
Ответ: 22.
Все дороги представлены векторами. т.е мы можем двигаться только в 1 направлении, назад идти не можем
Посчитаем последовательно количество путей до каждого из городов:
А = 1; Начало пути считаем за единицу
Б = 1; В пункт Б ведет только 1 путь
В = А + Б = 1 + 1 = 2; В пункт В ведет 2 пути: А -> В, Б -> В
Д = А = 1;
Г = А + Д = 1 + 1 = 2;
Е = Б + В = 1 + 2 = 3;
Ж = Д + Г = 1 + 2 = 3;
З = В + Г + Е + Ж = 2 + 2 + 3 + 3 = 10;
И = Е = 3;
К = Ж = 3;
И складываем все пути
Л = Е + Ж + З + И + К = 3 + 3 + 10 + 3 + 3 = 22.
Ответ: 22.