Вы хотите работать с разрешением 1600 на 1200 пикселей , используя 16 777 216 цветов. в магазине видеокарты с памятью 512 кбайт, 2 мбайт, 4 мбайт и 64 мбайт.какие из них можно купить для вашей работы?
1. Определяем количество байт, необходимое для отображения 16777216 цветов. Те, кто немного "в теме" и так знают, что 16 млн. цветов - это "трехбайтный" цвет, когда на каждый канал RGB - красный, зеленый и синий отводится ровно один байт. А остальным придется немного повычислять. a) Можно идти по пути умножения, если у нас калькулятор на четыре действия арифметики. Вспомним, что 1024 байта (1 Кбайт) - это 2¹⁰ байт (поэтому они и "кило" байт). Забываем про байты, но получаем знание о том, что десятая степень двойки - это 1024. Умножаем 1024 само на себя, получая 1048576- это квадрат, т.е. 20-я степень. А дальше удваиваем, получая 2097152, 4194304, 8388608 и 16777216. Вот оно, наше число. Умножали 4 раза, значит окончательно степень 24. 24 бита делим на 8, получая 3 байта. б) Если у нас есть логарифмы, то решаем уравнение 2ⁿ=16777216. n = ㏒₂16777216 = 24. Кто не может вычислять логарифмы по основанию 2, тот вычисляет n=㏑(16777216)/㏑(2)
2. Теперь найдем, сколько же надо всего пикселей. 1600 х 1200 = 1920000. Немало, да еще каждый пиксель требует 3 байта на свой цвет. В целом все эти пиксели займут 1920000 х 3 = 5760000 байт.
3. Переведем полученный объем памяти в килобайты и мегабайты. 5760000 / 1024 = 5625 Кбайт. 5625 / 1024 ≈ 5.5 Мбайт.
4. Смотрим, что нам предлагают не ниже этих значений. Только 64 Мбайта. Придется брать такую карту, потому что 4 Мбайта не хватит.
ответ: 64 Мбайта
Petrovich
10.02.2020
N=16 777 216, значит I=24 так-как 2 в степени 24 равно данному N ... V=I*x*y, у нас x=1600, y=1200, i = 24 ... 1600*1200*24=46 080 000 Бит = 5625 КБ (если вычислить в МБ выходит 5,49...). 4 МБ = 1024*4=4096 КБ, для нас немного не хватает, наверное 64 МБ (65536 КБ) только и подойдет, жаль вам там 6 МБ продать не могут, уж сами вычтите :)
Look7moscow
10.02.2020
Три символа алфавита могут быть закодированы в системе счисления по основанию 3, т.е. в троичной системе счисления. При этом под первым номером кодируется число 0, которое записано по условию как , т.е. символ F кодируется нулем. Вторым номером кодируется число 1 и его запись по условию N, откуда мы узнаем, что символ N кодируется цифрой 1. Тогда оставшийся символ S кодируется цифрой 2. И действительно, третьей идет комбинация символов S. Любой член в последовательности кодов может быть получен путем перевода в троичную систему числа, на единицу меньшего номеру этого члена (поскольку отсчет кодов идет с нуля, а члены последовательности нумеруются с единицы). Проверим наше построение для контрольного значения n99=NFNSS. 98(3)=10122 -> NFNSS, что соответствует условию. Теперь само решение. 7) 6(3)=00020 -> FFFSF 27) 26(3)=00222 -> FFSSS 90) 89(3)=10022 -> NFFSS 101) 100(3)=10201 -> NFSFN 196) 195(3)=21020 -> SNFSF
Shcherbakov_Artur1781
10.02.2020
Var m, n: integer; s1, s2, s3: string; ms: array[1..9] of string; md: array[1..9] of string; m1: array[11..19] of string; me: array[1..9] of string; flag: boolean;
Write('Введите целое число от 1 до 1000: '); Readln(m); if (m < 1) or (m > 1000) then Writeln('Шутки шутим?') else if m = 1000 then Writeln('Одна тысяча ' + s3) else begin { сотни } n := m div 100; if n > 0 then begin Write(ms[n]); flag := true end; { десятки } m := m mod 100; if m = 0 then Writeln(' ', s3) else begin if (m > 10) and (m < 20) then begin if flag then Write(' '); Writeln(m1[m], ' ', s3) end else if m > 0 then begin n := m mod 10; m := m div 10; if m > 0 then begin if flag then Write(' ') else flag := true; Write(md[m]) end; if n <> 0 then begin { единицы } if flag then Write(' '); Write(me[n], ' '); case n of 1: Writeln(s1); 2..4: Writeln(s2); else Writeln( s3) end end else Writeln(' ', s3) end end end end.
Тестовое решение: Введите целое число от 1 до 1000: 314 триста четырнадцать рублей
Те, кто немного "в теме" и так знают, что 16 млн. цветов - это "трехбайтный" цвет, когда на каждый канал RGB - красный, зеленый и синий отводится ровно один байт. А остальным придется немного повычислять.
a) Можно идти по пути умножения, если у нас калькулятор на четыре действия арифметики. Вспомним, что 1024 байта (1 Кбайт) - это 2¹⁰ байт (поэтому они и "кило" байт). Забываем про байты, но получаем знание о том, что десятая степень двойки - это 1024. Умножаем 1024 само на себя, получая 1048576- это квадрат, т.е. 20-я степень. А дальше удваиваем, получая 2097152, 4194304, 8388608 и 16777216. Вот оно, наше число. Умножали 4 раза, значит окончательно степень 24. 24 бита делим на 8, получая 3 байта.
б) Если у нас есть логарифмы, то решаем уравнение 2ⁿ=16777216.
n = ㏒₂16777216 = 24. Кто не может вычислять логарифмы по основанию 2, тот вычисляет n=㏑(16777216)/㏑(2)
2. Теперь найдем, сколько же надо всего пикселей.
1600 х 1200 = 1920000. Немало, да еще каждый пиксель требует 3 байта на свой цвет. В целом все эти пиксели займут 1920000 х 3 = 5760000 байт.
3. Переведем полученный объем памяти в килобайты и мегабайты.
5760000 / 1024 = 5625 Кбайт.
5625 / 1024 ≈ 5.5 Мбайт.
4. Смотрим, что нам предлагают не ниже этих значений. Только 64 Мбайта. Придется брать такую карту, потому что 4 Мбайта не хватит.
ответ: 64 Мбайта