#include <iostream>
#include <string>
using namespace std;
int main(){
cout.width(10);
cout<<"X Y\n";
for(double i = -3; i<=5;i+=0.5){
cout.width(4);
cout<<i<<' ';
double y = (2 * i * i) - (7 * i) + 1;
cout.width(4); cout<<y<<endl;
}
return 0;
}
Общее количество возможных вариантов = 11 (на первой остановке может выйти 0, 1, 2, ... или 10 пассажиров).
Искомая ёмкость = log(2)11 ≈ 3,46
Const
nm = 50;{максимальная длина массива}
type
Mas = array[1..nm] of real;
var
i, j, n: integer;
x, y: Mas;
d, dmin: real;
function SqrDist(p, q: integer): real;
{ Возвращает квадрат расстояния между точками }
begin
SqrDist := sqr(x[q] - x[p]) + sqr(y[q] - y[p])
end;
begin
Write('Введите количество точек -> ');
Readln(n);
Writeln('Вводите координаты каждой точки (x,y) через пробел');
for i := 1 to n do
begin
Write('точка ', i, ': ');
Readln(x[i], y[i]);
end;
dmin := 1e10; { значение, заведомо большее реально возможного }
for i := 1 to n do
for j := i + 1 to n do
begin
d := SqrDist(i, j);
if dmin > d then dmin := d
end;
Writeln('Минимальное расстояние между точками равно ', sqrt(dmin):0:4)
end.
Тестовое решение:
Введите количество точек -> 5
Вводите координаты каждой точки (x,y) через пробел
точка 1: 3.4 7.2
точка 2: -3 8.6
точка 3: -4.5 -5.1
точка 4: 6 -2
точка 5: 0 9
Минимальное расстояние между точками равно 3.0265
101011011=1*2^0+1*2^1+1*2^3+1*2^4+1*2^6+1*2^8=1+2+8+16+64+256=347
100011001=1*2^0+1*2^3+1*2^4+1*2^8=1+8+16+256=281
1110101001=1*2^0+1*2^3+1*2^5+1*2^7+1*2^8+1*2^9=1+8+32+128+256+512=937
А) гнездо
б) температура
в) ковёр