Посчитать энтропию источника сообщения с вероятностями появления символов(а, б, в, г, д) 0.3, 0.3, 0.2, 0.1, 0.1. закодировать кодом шеннона фано, посчитать среднее число бит, трит, и дит на символ.
Пример искомого минимального прямоугольника приведен на рисунке. Для левого нижнего угла координаты совпадают с минимальными координатами левых нижних углов прямоугольников, для правого верхнего - с максимальными.
Код (С++):
#include <iostream>
int main() {
int x1, y1, w1, h1, x2, y2, w2, h2;
std::cin >> x1 >> y1 >> w1 >> h1;
std::cin >> x2 >> y2 >> w2 >> h2;
// Lower-left corner
if (x1 < x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 < y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
// Upper-right corner
x1 += w1; y1 += h1;
x2 += w2; y2 += h2;
if (x1 > x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 > y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
}
Пример ввода:
1 2 3 4
0 3 6 1
Пример вывода:
0 2
6 6
Пояснение к формату ввода-вывода:
- На вход подаются две строки из 4 целых чисел: x, y - координат и ширины и высоты (изменения по x и y) для каждого прямоугольника
- Вывод - координаты левого нижнего и правого верхнего углов
Пример искомого минимального прямоугольника приведен на рисунке. Для левого нижнего угла координаты совпадают с минимальными координатами левых нижних углов прямоугольников, для правого верхнего - с максимальными.
Код (С++):
#include <iostream>
int main() {
int x1, y1, w1, h1, x2, y2, w2, h2;
std::cin >> x1 >> y1 >> w1 >> h1;
std::cin >> x2 >> y2 >> w2 >> h2;
// Lower-left corner
if (x1 < x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 < y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
// Upper-right corner
x1 += w1; y1 += h1;
x2 += w2; y2 += h2;
if (x1 > x2) {
std::cout << x1 << " ";
} else {
std::cout << x2 << " ";
}
if (y1 > y2) {
std::cout << y1 << "\n";
} else {
std::cout << y2 << "\n";
}
}
Пример ввода:
1 2 3 4
0 3 6 1
Пример вывода:
0 2
6 6
Пояснение к формату ввода-вывода:
- На вход подаются две строки из 4 целых чисел: x, y - координат и ширины и высоты (изменения по x и y) для каждого прямоугольника
- Вывод - координаты левого нижнего и правого верхнего углов
Объяснение:
#include <iostream>
using namespace std;
int main()
{
int x, y; //(−231≤x,y≤231−1;x≠0;y≠0)
cout<< "Введите X >= -231 & x!=0: "; cin>> x;
cout<< "Введите y <= 230 & y!=0: "; cin>> y;
if(x<-231 || x==0 || y>230 || y==0){
cout << "Неправильно введены данные. Введите повторно:" << endl;
cout<< "Введите X >= -231 & x!=0: "; cin>> x;
cout<< "Введите y <= 230 & y!=0: "; cin>> y;
}
else{
if(x>0 && y>0) cout << 1<<endl;
if(x<0 && y>0) cout << 2<<endl;
if(x<0 && y<0) cout << 3<<endl;
if(x>0 && y<0) cout << 4<<endl;
}
return 0;
}