Рассмотрим многоуровневый компьютер, в котором все уровни различны. На каждом уровне есть инструкции, которые в разы столь же мощны, как и уровни ниже этого уровня; то есть одна команда уровня r может выполнять работу инструкций r-1 m уровня. Если программе уровня 1 требуется k секунд для запуска, сколько времени будут выполняться эквивалентными программами на уровнях 2, 3 и 4, предполагая n инструкций r уровня требуется интерпретировать одну команду r + 1?
Это решение, с которым я столкнулся. Кто-нибудь может подтвердить или прокомментировать?
Это решение, с которым я столкнулся. Кто-нибудь может подтвердить или прокомментировать?
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).
Отказ от ответственности: это домашняя работа, задание уже передано. Я просто не могу получить семантику этой проблемы, и я действительно хотел бы ее понять.