Это какой клас информатика
Пусть размер изображения X бит. Аааа, прям как шкАльные задачки начинаются) Тогда скорость передачи по каналу связи в город А будет:
(X / 90) bit per sec (это битов в секунду)
Теперь разберемся с размером... ХА! Поняли? С размером...)
Что такое ха? В смысле икс? Это кол-во пикселей по горизонтали * на кол-во пикселей по вертикали и * на размер памяти для кодировки 1 пикселя.
Заметка автора:
Звездочка типа "*" - значит знак умножения.
***Конец заметки автора***
А изображение увеличелось в 2 раза, как мы знаем из школьного курса геометрии, если размеры фигуры растут линейно, то площадь квадратично, как-то так, короче закон Квадрата, ищите в интернете.
В нашем случаи это значит вот что: размер увеличели мы в 2 раза, значит площадь увеличится 2^2 то есть в 4 раза.
Следовательно размер изображения теперь будет 4X.
Ну и теперь пременим глубину кадрирования... Это кол-во памяти занимаемое 1 пикселем.
Вспоминаем формулу, что я объяснял ранее, значит размер нашей картинки равен 4 * (x * y * g), где x - ширина картинки, y - высота картинки, а g - глубина кодирования, она у нас уменьшилась в 1.5 раза, то есть новый размер картинки полностью будет выглядить вот так:
4 * (x * y * g / 1.5)
Скорость передачи второй картинки по второму каналу связи:
4 * (x * y * g / 1.5) / 10 bit res sec
Формула для изначального изображения будет выглядить вот так:
x * y * g
Теперь составим пропорцию:
x * y * g 4 * (x * y * g / 1.5)
----------- = -------------------------
? 10
Через неё пытаемся найти примерное время передачи первой картинки по второму каналу связи, надеюсь тут всё понятно :)
(Для непонятливых: скорость передачи второй картинки мы получаем делением её размера на время её передачи, скорость у нас константная, то есть не меняется, значит точно с такой же скоростью будет передана первая картинка по этому же каналу связи, но времени мы не знаем, по этому скорости прировняем, а неизвестное время будем сейчас искать)
Ищем по пропорции время, для эотго пременим правило прямоугольника или как оно там называется в школьной алгебре, это не важно:
(знак вопроса заменил на переменную t)
10 * (x * y * g) = (4 * (x * y * g / 1.5)) * t
t = (4 * (x * y * g / 1.5)) / (10 * (x * y * g))
А теперь нам нужно сравнить время передачи между первым и вторым каналом, время первого напомню будет:
((x * y * g) / 90)
Что бы найти во сколько раз быстрее второй канал, нужно разделить большее время на меньшее:
(4 * (x * y * g / 1.5)) / (10 * (x * y * g)) / ((x * y * g) / 90)
Теперь упростим выражение:
пусть x * y * g = 1, то есть константа, которая ни на что не повлияет, ведь у нас относительная величина - пропускная способность канала.
тогда получим:
(4 * (1 / 1.5)) / (10 * 1) / (1 / 90)
((4 / 1.5)) / 10) / (1 / 90)
(4/15) / (1/90) - вспоминаем школьный курс алгебры
4/15 * 90/1 - эквивалентное выражение
4/1 * 6/1 - сократили 90 на 15
4 * 6 = 24
Ответ: в 24 раза быстрее
Постскриптум:
Конечно можно было бы и не так подробно описывать, но надеюсь теперь понятно всё. Дерзайте и помните:
Математика & Программирование — это круто!
Только учитесь сами - универы, это параша)
Var x,y,z,n:integer;
begin
writeln('Введите n');
readln(n)
;for x:=1 to n do
begin
for y:=1 to n do
begin
for z:=1 to n do
begin
if (sqr(x)+sqr(y)+sqr(z)=n)then writeln('x=',x,' y=',y,' z=',z);
end;
end;
end;
<span>end.</span>
164)
var a: array [1..10] of real;
i: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(100) - 50;
writeln('[', i, '] => ', a[i]);
end;
writeln('------------');
for i := 1 to 10 do
begin
a[i] := sqr(a[i]);
writeln('[', i, '] => ', a[i]);
end;
<span>end.
169)
var a: array [1..10] of real;
i, s: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(100) - 50;
writeln('[', i, '] => ', a[i]);
end;
writeln('------------');
for i := 1 to 10 do
begin
if (A[i] < 0) then s := s + a[i];
end;
writeln(s);
<span>end.
172)
var a: array [1..10] of real;
i, s: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(100) - 50;
writeln('[', i, '] => ', a[i]);
end;
writeln('------------');
for i := 1 to 10 do
begin
if (A[i] <> 0) then s := s + 1;
end;
writeln(s);
<span>end.
174)
var a: array [1..10] of real;
i, s: integer;
b: real;
begin
for i := 1 to 10 do
begin
a[i] := random(100) - 50;
writeln('[', i, '] => ', a[i]);
end;
writeln('------------');
for i := 1 to 10 do
begin
b := b + a[i];
end;
b := b / 10;
for i := 1 to 10 do
begin
if (a[i] > b) then s := s + 1;
end;
writeln(s);
<span>end.
179)
var a: array [1..10] of real;
i, s: integer;
begin
for i := 1 to 10 do
begin
a[i] := random(100) - 50;
writeln('[', i, '] => ', a[i]);
end;
writeln('------------');
for i := 1 to 10 do
begin
if (i mod 2 = 0) then a[i] := sqr(a[i]);
writeln('[', i, '] => ', a[i]);
end;
<span>end.
Вроде так =)</span></span></span></span></span>