Текст состоит из 48004800 символов. Известно, что в тексте встречается ровно 200200 различных символов. При сохранении текста в памяти сохраняются коды символов так, что для записи каждого кода используется минимально возможное, одинаковое для всех кодов символов количество бит. Петя обнаружил, что весь текст можно представить в виде последовательности непересекающихся пар символов, причем в тексте встретится ровно KK различных пар символов. Петя решил сохранять в памяти код каждой пары символов, используя для записи каждого кода минимально возможное, одинаковое для всех кодов пар символов количество бит.
Петя обнаружил, что в результате объем памяти, требующейся для сохранения текста, уменьшился ровно на 12001200 байт. При каком минимальном значении KK это возможно. В ответе укажите целое число.
103
112
Ответы на вопрос:
Вобщем логика такова:
1) хитрый петя составил новую табличку и файл занял 2304 байта, так как юникод символ состоит из 2 байт (16 бит) составим соотношение для выяснения размера кода символа в его таблице:
4096/2304 = 16/х, отсюда
х = 9, т. е. для кодирования символа в таблице хитрого пети отводится 9 бит и всего можно накодировать 512 разных символов
2) неменее хитрый вася решил так - половина текста при 9 бит символе - 2304/9*2 = 128 симолов, он закодировал по новой таблице, для чего ему понадобилось 7 бит на символ, т. к 2 в 7 степени есть 128 а это и есть четверть от полного набора петиной таблицы.
теперь файл стал занимать 2304/2 + 7*128 = 1152 + 896 = 2048 байт,
таков размер итогового файла!
1) хитрый петя составил новую табличку и файл занял 2304 байта, так как юникод символ состоит из 2 байт (16 бит) составим соотношение для выяснения размера кода символа в его таблице:
4096/2304 = 16/х, отсюда
х = 9, т. е. для кодирования символа в таблице хитрого пети отводится 9 бит и всего можно накодировать 512 разных символов
2) неменее хитрый вася решил так - половина текста при 9 бит символе - 2304/9*2 = 128 симолов, он закодировал по новой таблице, для чего ему понадобилось 7 бит на символ, т. к 2 в 7 степени есть 128 а это и есть четверть от полного набора петиной таблицы.
теперь файл стал занимать 2304/2 + 7*128 = 1152 + 896 = 2048 байт,
таков размер итогового файла!
//dev-c++ 4.9.9.2 #include < iostream> using namespace std; const int n=5; int main(){ setlocale(lc_ctype,"russian"); int ma[n][n]; int ars[n]; int s=0; for(int i=0; i< n; i++)ars[i]=0; for(int i=0; i< n; i++) for(int j=0; j< n; j++){ cin> > ma[i][j]; if(ma[i][j]%2! =0){ s=s+ma[i][j]; ars[i]=ars[i]+ma[i][j]; }} cout< < "matrix: "< < endl; for(int i=0; i< n; i++){ for(int j=0; j< n; j++) cout< < ma[i][j]< < ' '; cout< < endl; } cout< < "сумма нечётных: "< < s< < endl; for(int i=0; i< n; i++) cout< < "сумма нечётных "< < i+1< < " строки: "< < ars[i]< < endl; cin.get(); cin.get(); return 0; }
Популярно: Информатика
-
marshaldir8011.09.2021 04:47
-
СашаЩербина20.08.2022 04:37
-
рано1212.05.2020 07:06
-
tukva8315.07.2020 00:11
-
Даниил1234566623.01.2021 11:56
-
veronika12141631.07.2022 14:19
-
saidazimkkk11.01.2020 11:12
-
carollabelle17.12.2020 13:59
-
lingvini201308.03.2020 18:33
-
КатяVL24.01.2020 12:50