|
1 / 1 / 0
Регистрация: 29.12.2020
Сообщений: 51
|
|
Экономия26.01.2021, 17:42. Показов 3281. Ответов 7
Метки нет (Все метки)
При записи текста в память компьютера часто используют посимвольное кодирование, при котором на каждый символ отводится 8 бит. Но текст может содержать не
2^8 различных символов, а гораздо меньше. И тогда можно получить значительную экономию, если каждый символ кодировать одинаковым минимально возможным количеством бит. Например, если в тексте есть только буквы A, B, C и D, то каждую из них можно закодировать всего двумя битами: 00, 01, 10 и 11. Напишите программу, которая для введенной строки, состоящей только из букв латинского алфавита в верхнем регистре, определит такой минимальный по длине код, закодирует им строку и выведет на печать. Меньшей букве должно соответствовать меньшее по значению кодовое слово. Формат ввода Строка из латинских букв в верхнем регистре. Формат вывода Строка кодов наименьшей длины для букв введенной строки в том же порядке. Пример 1 Ввод Вывод ABBA 0110 Пример 2 Ввод Вывод GENERATOR 010001011001101000110100101 Пример 3 Ввод Вывод SORRY 1000010111 Примечания В задаче нельзя использовать списки, словари и сортировку. А также собственные функции и функции высшего порядка. Разберем второй пример. В слове GENERATOR используется 7 различных букв. Чтобы их закодировать, достаточно 3 бита, и кодировка букв, расположенных в алфавитном порядке, будет выглядеть так: 000 A 001 E 010 G 011 N 100 O 101 R 110 T А последний код 111 никому не достался.
0
|
|
| 26.01.2021, 17:42 | |
|
Ответы с готовыми решениями:
7
Экономия Где экономия? Где экономия? |
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
||||||
| 26.01.2021, 19:19 | ||||||
Сообщение было отмечено LevL123 как решение
Решение
LevL123,
2
|
||||||
|
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
|
||||||||||||
| 27.01.2021, 21:32 | ||||||||||||
Потом
0
|
||||||||||||
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
|
| 27.01.2021, 22:18 | |
|
gray621, в алфавите 26 букв. 26 в двоичном содержит 5 символов.
Заменяем букву на пробел и 5 символов => счетчик (число) в двоичном коде плюс слева "0" до пятисимвольной строки Потом (после цикла) определяем количество знаков в двоичном коде у счетчика "к" ; определяем "лишнее" количество нулей слева; заменяем пробел плюс "лишние' нули на "пустой" символ. Всё
1
|
|
|
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
|
||||||||||||||||||||||||||
| 27.01.2021, 23:49 | ||||||||||||||||||||||||||
|
Gdez, то есть
Но как работает
0
|
||||||||||||||||||||||||||
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
||||||||||||||||
| 28.01.2021, 04:26 | ||||||||||||||||
|
gray621, gray621, вот тут у "bin(k)" срезом "убираются" первые два символа
k = 5 - len(bin(k))[2:] = 7 - len(bin(k)) Первые два символа - префиксы, которые "приписываются" всем "недесятичным" числам. Попробуй
1
|
||||||||||||||||
|
63 / 52 / 11
Регистрация: 14.01.2021
Сообщений: 406
|
|
| 28.01.2021, 08:33 | |
|
Gdez, Первые два символа - префиксы, которые "приписываются" всем "недесятичным" числам. Да, я знаю это. Просто не понял, что там не удаляешь.
Добавлено через 2 минуты Gdez, но почему 5 - длина двоичного счётчика + двоичный счетчик в 10 строчке
0
|
|
|
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
|
|
| 28.01.2021, 09:38 | |
|
gray621, изначально неизвестно количество уникальных символов в строке и резервируется 6 бит - один пробел и пять под максимально возможную запись числа (для этой задачи для 26).
После определения количества уникальных символов в строке становится известна длина двоичной записи: Для уникальных элементов 2 -> 1 символ 0 или 1 Для 3...4 - два символа от 10 до 11 ....... Для 17...26 - пять от 10000 до 11001 Поэтому для первого по алфавитному порядку "пишется" -> " " + "0000" + "0" = " 00000" Для третьего -> " " + "000" + "10" Для семнадцатого и выше -> " " + "1****" Для определения количества "средних" нулей используется (5 - len(tmp)) Счетчик "к" после выхода из цикла показывает максимальный порядковый номер символа в данной строке. Под него и "обрезаются" все числа с удалением пробелов
1
|
|
| 28.01.2021, 09:38 | |
|
Помогаю со студенческими работами здесь
8
Где экономия? Где экономия? Где экономия? Прагматизм экономики СССР это экономия развития СССР, в частности это экономия технического и технологического развития Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|