Найди количество информации во фразе Приехав в Удмуртию, исследователь увидел фразу на удмуртском языке:
Сколько информации в этой фразе, если современный удмуртский алфавит содержит 38 символов?
Считай, что каждый символ алфавита кодируется одинаковым минимально возможным количеством битов. Не забудьте учесть пробел, как дополнительный символ алфавита.
1) Если не принимать во внимание то, что иллюстрации тоже занимают место в «рукописи», то получаем объем, занимаемый текстом 4096*1024*128*16=8 589 934 592 бит занимает текст, для того, чтобы получить количество байт необходимо это число разделить на 8, т.к. в одной байте 8 бит. Получаем 1 073 741 824 байт. Далее, чтобы получить килобайты надо полученное число разделить на 1024. Получим 1 048 576 кБ. Чтобы получить мегабайты, делим килобайты на 1024. Получаем 1024 мегабайт или 1 гигабайт (т.к. 1 гигабайт = 1024 мегабайт).
Далее считаем объем, занимаемый иллюстрациями:
2520*3=7560 мегабайт. Делим на 1024 и получаем 7,3828125 гигабайт.
Складываем полученные суммы: 1+7,3828125=8,3828125 гигабайт. Что превышает объем флеш-карты. Соответственно в несжатом виде «рукопись» не поместится.
2)
а) Из предыдущей задачи мы знаем, что символ кодируется 16 битами. Соответственно, чтобы получить объем, занимаемый одной книгой перемножаем 256*128*64*16=33 554 432 бита = 4 194 304 байта = 4 096 кБ = 4 мегабайта. Чтобы узнать сколько книг поместится на жесткий диск необходимо объем жесткого диска умножить на 1024 (получим объем в мегабайтах): 160 Гбайт *1024 = 163 840 мегабайт. Теперь делим объем жесткого диска на объем одной книги: 163 840 / 4 = 40 960 книг.
б) Теперь перемножаем количество книг на 3 сантиметра и получаем высоту стопки книг: 40 960*3=122 880 см.
#include <iostream>
#include <cmath>
const int length = 6;
int main()
{
int numb;
std::cout << "Input number: ";
std::cin >> numb;
if (!(numb >= (int)pow(10, length - 1) && numb < (int)pow(10, length))) {
std::cout << "\nInput error!";
}
else {
bool isPal = true;
for (int i = 0; i < length / 2; i++) {
if (((numb % (int)pow(10, i + 1) - numb % (int)pow(10, i)) / (int)pow(10, i)) != (numb / (int)pow(10, length - 1 - i) - 10 * (numb / (int)pow(10, length - i {
isPal = false;
}
}
std::cout << "\nIt's" << (isPal ? "" : " not a") << " palindrome";
}
return 0;
}
Если не принимать во внимание то, что иллюстрации тоже занимают место в «рукописи», то получаем объем, занимаемый текстом 4096*1024*128*16=8 589 934 592 бит занимает текст, для того, чтобы получить количество байт необходимо это число разделить на 8, т.к. в одной байте 8 бит. Получаем 1 073 741 824 байт. Далее, чтобы получить килобайты надо полученное число разделить на 1024. Получим 1 048 576 кБ. Чтобы получить мегабайты, делим килобайты на 1024. Получаем 1024 мегабайт или 1 гигабайт (т.к. 1 гигабайт = 1024 мегабайт).
Далее считаем объем, занимаемый иллюстрациями:
2520*3=7560 мегабайт. Делим на 1024 и получаем 7,3828125 гигабайт.
Складываем полученные суммы: 1+7,3828125=8,3828125 гигабайт. Что превышает объем флеш-карты. Соответственно в несжатом виде «рукопись» не поместится.
2)
а) Из предыдущей задачи мы знаем, что символ кодируется 16 битами. Соответственно, чтобы получить объем, занимаемый одной книгой перемножаем 256*128*64*16=33 554 432 бита = 4 194 304 байта = 4 096 кБ = 4 мегабайта. Чтобы узнать сколько книг поместится на жесткий диск необходимо объем жесткого диска умножить на 1024 (получим объем в мегабайтах): 160 Гбайт *1024 = 163 840 мегабайт. Теперь делим объем жесткого диска на объем одной книги: 163 840 / 4 = 40 960 книг.б) Теперь перемножаем количество книг на 3 сантиметра и получаем высоту стопки книг: 40 960*3=122 880 см.