fixer2006
?>

Вы хотите работать с разрешением 1600 на 1200 пикселей , используя 16 777 216 цветов. в магазине видеокарты с памятью 512 кбайт, 2 мбайт, 4 мбайт и 64 мбайт.какие из них можно купить для вашей работы?

Информатика

Ответы

akopovarch
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
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
Три символа алфавита могут быть закодированы в системе счисления по основанию 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
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;

begin
 
  flag := false; { Пока ничего не выведено }
  s1 := 'рубль';
  s2 := 'рубля';
  s3 := 'рублей';
  ms[1] := 'сто'; ms[2] := 'двести'; ms[3] := 'триста'; ms[4] := 'Четыреста';
  ms[5] := 'пятьсот'; ms[5] := 'пятьсот'; ms[6] := 'шестьсот'; ms[7] := 'семьсот';
  ms[8] := 'восемьсот'; ms[9] := 'девятьсот';
  md[1] := 'десять'; md[2] := 'двадцать'; md[3] := 'тридцать'; md[4] := 'сорок';
  md[5] := 'пятьдесят'; md[6] := 'шестьдесят'; md[7] := 'семьдесят';
  md[8] := 'восемьдесят'; md[9] := 'девяносто';
  m1[11] := 'одиннадцать'; m1[12] := 'двенадцать'; m1[13] := 'тринадцать';
  m1[14] := 'четырнадцать'; m1[15] := 'пятнадцать'; m1[16] := 'шестнадцать';
  m1[17] := 'семнадцать'; m1[18] := 'восемнадцать'; m1[19] := 'девятнадцать';
  me[1] := 'один'; me[2] := 'два'; me[3] := 'три'; me[4] := 'четыре'; me[5] := 'пять';
  me[6] := 'шесть'; me[7] := 'семь'; me[8] := 'восемь'; me[9] := 'девять';
 
  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
триста четырнадцать рублей

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вы хотите работать с разрешением 1600 на 1200 пикселей , используя 16 777 216 цветов. в магазине видеокарты с памятью 512 кбайт, 2 мбайт, 4 мбайт и 64 мбайт.какие из них можно купить для вашей работы?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ksen1280
dianakryukova00
gennadevna
avdoyan6621
northwest7745
Коновалова
Алла14
sbarichev330
alfaantonk
dzo-dzo
matoksana
Soliyabronzoni
alexandergulyamov
Александрович Алексеевна
andrew55588201824