Проблема компьютерной логики

Рассмотрим многоуровневый компьютер, в котором все уровни различны. В каждом уровне есть команды, которые в m раз мощнее, чем команды нижележащего уровня; то есть одна команда уровня r может выполнять работу m уровня r - 1 команды. Если для выполнения программы уровня 1 требуется k секунд, сколько времени займут эквивалентные программы на уровнях 2, 3 и 4, предполагая, что для интерпретации одной команды r+1 требуется n команд уровня r?

Вот решение, которое я придумал. Кто-нибудь может подтвердить или прокомментировать?

Это решение, которое я придумал. Кто-нибудь может подтвердить или прокомментировать?

Level (r)        Level-1 Instructions (m)          Time
4                m^3                               t(q) ==(m^3q+n+nm+nm^2) (k/q)
3                m^2                       t(q) =(m^2q+n+nm)(k/q)
2                m                             t(q) = (mq+n)(k/q)
1                1                             t(q) = k

Для того, чтобы вычислить время выполнения t(q) для данной программы, содержащей команды q уровня 1, необходимо учитывать как экспоненциально возрастающее количество инструкций уровня 1, которое представляет каждая инструкция уровня r (показано в виде m^(r-1)), так и дополнительное количество инструкций уровня 1, необходимое для интерпретации для каждого слоя, на котором выполняется программа (показано в виде nm^(r-1)). Дополнительные команды уровня-1, используемые для интерпретации нижними уровнями, также должны быть добавлены в конечные уравнения для r>2. Наконец, для каждого уравнения можно определить количество секунд, которое занимает программа, умножив общее количество инструкций уровня-1, используемых на время выполнения одного цикла уровня-1, рассчитанное на (k/q).

Отказ от ответственности: Это - домашнее задание, задание уже сдано. Я просто не могу понять семантику этой проблемы, и мне бы очень хотелось ее понять.

13
задан Bill the Lizard 16 September 2012 в 15:31
поделиться