Пусть a*b = X - размер изображения (количество точек в изображении).
Для кодирования одного из 64 цветов требуется log(2)64 = 6 бит (2^6=64).
96 Кбайт = 96*1024 байт = 96*1024*8 бит
В экономном режиме:
96*1024*8 = X*100*100*6;
X = 96*1024*8 / (100*100*6) = 128*1024/10000
2 Мбайта = 2*1024 Кбайт = 2*1024*1024 байт = 2*1024*1024*8 бит
Пусть z - объем одного цвета в палитре до оптимизации
2*1024*1024*8 = X*400*400*z
2*1024*1024*8 = (128*1024/10000)*400*400*z
2*1024*8 = (128)*4*4*z
z = 16*1024/(128*4*4) = 8 бит
количество цветов в палитре до оптимизации = 2^8 = 256
ответ: 256
begin
var L := new List<integer>;
L.AddRange(Seq(2, 100, 5, 99, 17));
L.Println;
var A := ReadInteger('A=');
var s:=L.ToArray.Select((v, i)-> (v, i)); // в памяти не хранится!
// Ищем 2- максимальный элемент. Сортируем по убыванию, берем 2-й.
var i := s.OrderByDescending(t -> t[0]).Skip(1).First[1];
L.Insert(i,A); // вставка
L.Remove(L.Max); // удаление
L := L.Sorted.ToList; // сортировка
L.Println
end.
Пусть a*b = X - размер изображения (количество точек в изображении).
Для кодирования одного из 64 цветов требуется log(2)64 = 6 бит (2^6=64).
96 Кбайт = 96*1024 байт = 96*1024*8 бит
В экономном режиме:
96*1024*8 = X*100*100*6;
X = 96*1024*8 / (100*100*6) = 128*1024/10000
2 Мбайта = 2*1024 Кбайт = 2*1024*1024 байт = 2*1024*1024*8 бит
Пусть z - объем одного цвета в палитре до оптимизации
2*1024*1024*8 = X*400*400*z
2*1024*1024*8 = (128*1024/10000)*400*400*z
2*1024*8 = (128)*4*4*z
z = 16*1024/(128*4*4) = 8 бит
количество цветов в палитре до оптимизации = 2^8 = 256
ответ: 256
begin
var L := new List<integer>;
L.AddRange(Seq(2, 100, 5, 99, 17));
L.Println;
var A := ReadInteger('A=');
var s:=L.ToArray.Select((v, i)-> (v, i)); // в памяти не хранится!
// Ищем 2- максимальный элемент. Сортируем по убыванию, берем 2-й.
var i := s.OrderByDescending(t -> t[0]).Skip(1).First[1];
L.Insert(i,A); // вставка
L.Println;
L.Remove(L.Max); // удаление
L.Println;
L := L.Sorted.ToList; // сортировка
L.Println
end.