// Меняем некоторых животных поменьше на животных побольше // Например, 7 Мартышек можно представить как 1 Слоника и 3 Мартышки monkeys += parrots / 8; parrots %= 8; elephants += monkeys / 4; monkeys %= 4; boas += elephants / 3; elephants %= 3;
// Теперь начинаем делить. Если При делении нужно располовинить какое-либо животное, // лучше просто заменить его на соответствующее животное по-меньше // Например, если канат длиной в 3 Слонёнка, то мы при делении на 2 могут возникнуть проблемы. // А вот если заменить одного слоненка на 4 Мартышек и делить уже 2 Слоников и 4 Мартышки, // то получится 1 Слоненок и 2 Мартышки elephants += 3*(boas % 2); boas /= 2; monkeys += 4*(elephants % 2); elephants /= 2; parrots += 8*(monkeys % 2); monkeys /= 2; if (parrots % 2) { flag = true; cout << "Количество попугаев НЕЧЕТНО" << endl << endl; } parrots /= 2;
0,5 Кбайт = 0,5*1024 байт = 512*8 бит
512*8/128 = 32
2.
Память для одного символа = log(2)64=6 бит
Объем текста = 10*32*64*6 бит = 10*32*64*6/8 байт =
10*4*64*6/1024 Кбайт = 15 Кбайт
3.
3 Кбайт = 3*1024 байт = 3*1024*8 бит
Память для одного символа = 3*1024*8/6144 = 4 бита
Количество символов в алфавите = 2^4 = 16
4.
Память для одного символа = log(2)128=7 бит
Объем сообщения = 10*7 = 70 бит
8.
a) 3 Кбайт=3*1024 Байт = 3072 бАЙТ
b) 2 Мбайт=2*1024 Кбайт = 2*1024*1024 байт = 2*1024*1024*8 бит = 16777216 бит
c) 4,5 Гигабайт=4,5*1024 Мбайт = 4,5*1024*1024 Кбайт = 4718592 Кбайт
Но не суть. ответ ниже..
Так как язык программирования не указан, написал на C++
#include <iostream>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
size_t boas, elephants, monkeys, parrots;
bool flag = false;
// Вводим данные
cout << "" << endl;
cout << "Введите длину каната" << endl;
cout << "" << endl;
cout << "Удавов: " ; cin >> boas;
cout << "Слоников: " ; cin >> elephants;
cout << "Мартышек: " ; cin >> monkeys;
cout << "Попугаев: " ; cin >> parrots;
cout << endl << endl;
// Меняем некоторых животных поменьше на животных побольше
// Например, 7 Мартышек можно представить как 1 Слоника и 3 Мартышки
monkeys += parrots / 8; parrots %= 8;
elephants += monkeys / 4; monkeys %= 4;
boas += elephants / 3; elephants %= 3;
// Теперь начинаем делить. Если При делении нужно располовинить какое-либо животное,
// лучше просто заменить его на соответствующее животное по-меньше
// Например, если канат длиной в 3 Слонёнка, то мы при делении на 2 могут возникнуть проблемы.
// А вот если заменить одного слоненка на 4 Мартышек и делить уже 2 Слоников и 4 Мартышки,
// то получится 1 Слоненок и 2 Мартышки
elephants += 3*(boas % 2); boas /= 2;
monkeys += 4*(elephants % 2); elephants /= 2;
parrots += 8*(monkeys % 2); monkeys /= 2;
if (parrots % 2) {
flag = true;
cout << "Количество попугаев НЕЧЕТНО" << endl << endl;
}
parrots /= 2;
// Вывод результата
cout << "" << endl;
cout << "Вывод длины деленного каната" << endl;
cout << "" << endl;
cout << "Удавов: " << boas << endl;
cout << "Слоников: " << elephants << endl;
cout << "Мартышек: " << monkeys << endl;
cout << "Попугаев: " << parrots; if (flag) cout << " + 0.5 (СКОРУЮ СЮДА!!)";cout << endl;
cout << endl << endl;
system("pause");
return 0;
}