Код программы ruby for i in "1000".to_i(8).."7777".to_i(8) s = i.to_s(2) k = 0 s.chars.each {|c| k += 1 if c == "1"} if (k==5) p [i, i.to_s(8), s, k] break end end
Вывод [527, "1017", "1000001111", 5]
ответ 1017
Если решать аналитически, то наверное это делается методом подбора плюс быстрым переводом восьмеричной системы в двоичную (каждая цифра 8чной переводится в 3 цифры 2чной, можно заранее посчитать кол-во единиц для каждой). Сразу понимаем что в числах 1000-1016 будет слишком мало единиц, только "7"_8 переводится в "111"_2. И еще две единицы дают "1"_8
Для начала надо найти i(вес 1 символа, т.е чему равен 1 символ в битах) Для этого есть формула N=2^i ; N(Мощность алфавита) Подставляем в формулу мощность алфавита. 64=2^6 значит i=6 бит, а как получил 6 тут просто нужно , 2×2×2×2×2×2=64 , кол.двоек означает вес 1 символа. Теперь, чтобы найти I(3 страниц)нужно (кол.страниц×кол.строк×кол.символов×вес 1 символа) I=3×40×60×6=43'200 бит, теперь переведем в байты по условию задачи. 43'200 бит=43'200÷8=5'400байт ответ:5'400 байт количество информации содержат 3 страницы.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку