• Предмет: Информатика
  • Автор: sofiamelnik683
  • Вопрос задан 3 месяца назад

У документі обсягом 128,5 КБ фрагмент тексту, який складався із 15 символів, під час архівації було замінено на один символ. Яким стане обсяг вихідного файлу порівняно із вхідним, якщо даний фрагмент зустрічався у тексті 52 разів.
СРОЧНО ДАЮ 50Б​

Ответы

Ответ дал: WHAAAAAAAAAAAGH
1

Ответ: нельзя вычислить в силу неполноты условия задачи, но
самый близкий ответ ~ 127.8КБ

Объяснение:
Итак, у вас есть текстовый документ.
Для простоты предположим, что это чистый txt.
Вам также известен его размер - 128,5 КБ.
Ещё вам, известно, что есть некая последовательность
НЕИЗВЕСТНЫХ символов в количестве 15 штук, которая при сжатии архиватором превращается в 1 символ.
Известно, что такая последовательность из 15 символов,
встречается в тексте 52 раза.

Что это нам даёт? Практически ничего. Основные проблемы:
  а) Мы не знаем кодировку символов (ASCII, Unicode, Shift-JIS и т.д.)
  б) Мы не знаем, какой конкретно символ повторяется 15раз
  в) Мы не знаем метод сжатия (менее важная проблема, так как
      нам сообщают результат сжатия - 1символ)

Теперь, по порядку, ваш преподаватель хочет, чтобы вы решили
задачу так:
   1) В проблеме, (а) вы допускаете однобайтовую кодировку
      (ASCII, КОИ-8, и т.д.), т.е. один символ - занимает ровно 1 байт.
   2) Отсюда, проблема (б) самоустраняется - так как нет символов
       переменной длинны
   3) Таким образом вы заменяете 52 отрезка по 15 байт, 52мя  
       отрезкам по 1байту.

       Столько Килобайт занимало до архивации
       52отрезка * 15байт\каждый = 720байт\все = 0.77 КБ\все
       Столько Килобайт занимает после архивации
       52отрезка * 1байт\каждый = 52байт\все= 0.05 КБ\все


  4) Теперь, вы знаете, что все отрезки после архивации занимают
       52байта.  Осталось, из исходного размер 128.5 КБ вычесть
       старый размер последовательностей и приплюсовать новый:

       128.5 * 1024 = 131584 Байт - размер исходного текста в байтах
       131584 - 720 + 52 = 130916 Байт - размер после сжатия в байтах
       130916 / 1024 = 127.84 КБайт - размер после сжатия в килобайтах
                 

Вас заинтересует