См. Фото........................
Var k,i:integer;
begin
k:=1;
for i:=1 to 24 div 3 do
begin
k:=k*2;
writeln(3*i:3, ': k = ',k);
end;
end.
Результат:
3: k = 2
6: k = 4
9: k = 8
12: k = 16
15: k = 32
18: k = 64
21: k = 128
24: k = 256
Пусть размер изображения 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
Ch,Z:real;
i:integer;
Begin
Ch:=0;
For i:= 1 to 100 do
if i mod 7 = 0 then Ch:=Ch+i;
Z:=0;
For i:= 100 to 500 do
if i mod 17 = 0 then Z:=Z+i;
WriteLn(Ch,'/',Z,' = ',Ch/Z);
End.
Результат работы программы:
735/7140 = 0.102941176470588
Для начала приведем все в 10 сис-му счисления
1) 1100(2) = 12(10)
2) 65(8) = 53(10)
Получаем 12 + 53 + х = 110
откуда х = 110 - 12 - 53 = 45
Переведем полученное значение в восьмеричную систему
45(10) = 55(8)
Ответ: 55