Файлы с несжатыми растровыми изображениями хранятся на жестком диске полезным объемом 1024 МБайт. В каждом файле хранятся только значения цветов пикселей изображения размером 480 на 320 пикселей с глубиной цвета 24 бита на пиксель. Никакой дополнительной информации файлы с изображениями не содержат. Весь полезный объем жесткого диска разбит на блоки одинакового размера. Под хранение каждого файла отводится набор блоков так, что файл занимает целое число блоков. Если в конце последнего блока, выделенного файлу, остается свободное место, оно не может быть использовано для хранения данных других файлов. Весь полезный объем диска отводится только для хранения указанных файлов (информация о размещении файлов по блокам хранится отдельно и не входит в полезный объем диска).
Изначально жесткий диск разбили на блоки, размером X КБайт, где X – целое число.
Известно, что если жесткий диск разбить на блоки в 2 раза большего размера, то на диске будет помещаться на 40 файлов меньше. Определите, какой размер блока X был при изначальном разбиении. В ответе укажите целое число.
Answers & Comments
На 1 файл: 480*320*24 бит = 480*320*3 байт = 450 Кбайт
var f,r,x,n,k1,k2:integer;
begin
f:=450;
r:=1024*1024;
x:=2;
while x<=r do begin
n:=r div x;
k1:=Ceil(f/x); k2:=Ceil(f/(2*x));
if (n div k1) = ((n div 2) div k2+40)
then begin
writeln('1 разбиение: блок = ',x,' Кбайт, блоков на файл ',k1,', файлов ',n div k1);
writeln('2 разбиение: блок = ',2*x,' Кбайт, блоков на файл ',k2,', файлов ',(n div 2) div k2);
end;
x:=2*x;
end;
end.
Результат:
1 разбиение: блок = 8 Кбайт, блоков на файл 57, файлов 2299
2 разбиение: блок = 16 Кбайт, блоков на файл 29, файлов 2259
Verified answer
Изображение занимает 480х320х24 бита информации. Это равняется 450х2¹³ битов, что равняется 450кБ.40 файлов- это 18000кБ.
На диске- 1048576кБ.
Если блоки стали в 2 раза больше, то пустого места, сответсвенно, тоже стало в 2 раза больше, на 18000кБ, значит до этого было тоже 18000кБ пустого места(если увеличить его в 2 раза, то будет НА 18000кБ больше), 1048576÷18000 даст 58(без остатка), значит изображений было тоже 58. После кажого изображения оставалось 18000/58 кБ пустого места(около 310 кБ), соответсвенно изображение с пустым местом занимало 18310кБ, что являлось размером блока