Памагите Для записи сообщения использовался 64-х символьный алфавит. Все сообщение занимает 3 страницы, на каждой странице по 20 строк, в каждой строке по 60 символов. Какое количество информации в этом сообщении?
Привет, код задачи приведен ниже 1. Отметь ответ как лучший (поставь 5 звезд). 2. Нажми кнопочку " " тут и в моем аккаунте
(За 8 былов такое никто не делает кроме меня будь благодарен в ответ)
Код прокомментирован, за дополнительными вопросами или информацией * Обращайся в комментарии, я отвечу на вопросы. * Зайди ко мне в профиль, в моих записях ты найдешь ссылки на полезные ресурсы.
FILE: CFraction.hpp
#ifndef CFRACTION_HPP #define CFRACTION_HPP
//Это класс дроби, тут мы храним чеслитель, знаменатель и функцию nesokr(). class CFraction { public:
CFraction(); //Конструктор класа
//"Геттеры" класса для получения значений приватных полей const unsigned int& getNumerator() const; const unsigned int& getDenumerator() const;
//"Сеттеры" класса для задани значений приватным полям void setNumerator(const unsigned int& value); void setDenumerator(const unsigned int& value);
//Функция заданная по заданию для сокращения дроби void nesokr();
private:
//Функция реализующая поиск найбольшего общего делителя по алгоритму Евклида const unsigned int getGreatestCommonDivisor() const; //Функция проверяющая, есть ли необходимость искать НОД const bool isRequireCalculationGCD() const;
private:
unsigned int mFirst; //Поле для числителя unsigned int mSecond; //Поле для знаменателя };
//Возращение значений происходит по константной ссылке. //Благодаря этому избегается копирование переменной, //а так же её модификация по ссылке. const unsigned int& CFraction::getNumerator() const { return mFirst; }
//Функция имеет в конце себя слово const сигнализирующее компилятору, //что метод не модифицировать поля класса. const unsigned int& CFraction::getDenumerator() const { return mSecond; }
//Передача аргумента в функцию так же реализуется по константной ссылке, //из тех же соображений что и возращение поля по константной ссылке. void CFraction::setNumerator(const unsigned int& value) { mFirst = value; }
void CFraction::setDenumerator(const unsigned int& value) { //Проверяем значение на 0, знаменатель не может быть равнм нулю. //Значение не проверяется на знак отрицания, по тому, что везде используется //беззнаковый целочисленный тип данных unsigned int. if (0 != value) { mSecond = value; } }
void CFraction::nesokr() { //Если есть необходимость проводить расчёты и сокращать дробь, то //находим НОД и делим на него чеслитель и знаменатель. if ( isRequireCalculationGCD() ) { unsigned int greatestCommonDivisor = getGreatestCommonDivisor();
const bool CFraction::isRequireCalculationGCD() const { //Проверяем, не является, ли знаменатель равным единице, //иначе нет смысла проводить безсмысленную работу, т.к. в любом случаи НОД //будет единица, то же самое делаем с числителем. return ( (1 != mSecond || 1 != mFirst) || (1 != mSecond && 1 != mFirst) ); }
const unsigned int CFraction::getGreatestCommonDivisor() const { //Алгоритм поиска НОД называется алгоритмом Евклида unsigned int remainder(1);
//Для его реадизации берем два числа и выделяем из них большее и меньшее. unsigned int gretestNumber = (mFirst > mSecond ? mFirst : mSecond); unsigned int leastNumber = (mFirst < mSecond ? mFirst : mSecond);
while (0 != remainder) { remainder = gretestNumber % leastNumber;
//Если остаток деления большего на меньшее равен нулю, //то НОД является меньшее из этих чисел if (0 != remainder) { //Если же остаток не равен нулю, //то большим числом становится предыдущее меньшее, //а меньшим становится остаток от леления. gretestNumber = leastNumber; leastNumber = remainder; } }
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018 Внимание! Если программа не работает, обновите версию!
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var b:=ArrRandom(ReadInteger('n='),-50,50); b.Println; var sp:=b.Where(t->t>0).Sum; var im:=a.IndexMax; if im>0 then begin a:=ArrFill(im,sp)+a[im:]; a.Println end else Writeln('Максимальный элемент стоит первым') end.
1. Дано:
N = 64 ; K1 = 30 ; K2 = 6 ; M = 8775
Найти: K3
N = 2^i ; 64 = 2^6 ; i =6бит
M = K1*K2*K3*i ; K3 = M/K1*K2*i
M = 8775байт*8 = 70200бит
K2 = 70200/(6*30*6)=65 символов
2. Дано: 2.5кб
а=4096
Найти
N-?
N=2^l
V=l*a=>l=V/a=2.5^13/2^12=5
ответ: 5 бит
3. Дано:
I=4кб
K=4096 символов
N?
I=4кб=4*1024*8битов
(информационный вес)
i=I/K, т.к. I=K*i
Тогда i=4*1024*8/4096=8битов
N=2^8=256 символов
ответ: 256 символов.
Объяснение: