Cтраница 1
Длина программы, производящей хаотическую последовательность, должна быть близка к длине последней. Итак, простые последовательности - это те, которые порождаются короткими программами. Изложим эти интуитивные соображения несколько более формально. [1]
Длины программ функций из этих множеств равны соответственно п2 и Пз. Искомый нумератор Н определим как композицию этих множеств: Я. Длина программ функций из Я не превышает суммы длин программ функций из F, Gait и Gali. Вычисления отображений из Я на словах из А проводятся так же, как и в ранее разобранных случаях, и требуют А ( log А) 2 -операций. [2]
Длина программы экспоненциального фильтра, по-видимому, меньше, чем программы любого усредняющего фильтра, поскольку здесь не требуется счет. Время выполнения программы также меньше, поскольку здесь нужны только два действия сложения и одно умножение. Эти преимущества при программировании, а также меньший фазовый сдвиг определяют популярность экспоненциального фильтра в АСУ ТП. [3]
Длину программы, содержащую последовательность из п одинаковых фрагментов, можно сократить, охватив один из таких фрагментов циклом, вычисления в котором повторяются п раз. В программах на алгоритмических языках для этой цели можно использовать как операторы цикла общего вида: пока Сусловие, выполнять Стело иикла или повторять Стело цикла, пока Сусловие, так и специализированные операторы цикла вида для / п до 1 выполнить тело цикла -, где телом цикла является многократно выполняемый фрагмент программы. [4]
Длину программы на компактном входном языке можно сократить, рационально используя возможные разнообразные способы реализации одних и тех же операторов алгоритма. Следует учитывать, что уменьшение длины программы складывается из небольших уменьшений числа шагов в отдельных фрагментах, а если длина оптимизируемой программы лишь на несколько шагов превышает число ячеек программной памяти, выигрыш от сокращения длины программы и устранения необходимости использования пакета программы оказывается значительным. Если при уменьшении длины отдельных фрагментов удается устранить и операторы безусловных переходов ( что соответствует требованиям структурирования программ), то заметно сократится и время выполнения программы. [5]
Длину программы иногда можно сократить заменой линейных участков циклическими, которые, естественно, исполняются дольше, поскольку требуется выполнять дополнительные команды управления циклами. Аналогично объем используемой памяти в некоторых случаях можно сократить за счет применения более сложных и, следовательно, дольше исполняемых алгоритмов. Однако бывают случаи, когда программа содержит избыточные команды, устранение которых сокращает и ее длину, и время исполнения. [6]
С увеличением длины программы все труднее становится запомнить коды различных операций. Некоторую помощь в этом отношении оказывают мнемонические обозначения ( см. гл. [7]
Если сокращение длины программы, рассмотренное в предыдущей главе, носило, так сказать, показательный характер и преследовало цель улучшить программу, то при составлении программы в этой главе оно стало суровой необходимостью. [8]
![]() |
Представление символь ной информации словами. [9] |
Это увеличивает длину программ и время обработки текстов. Чтобы исключить эти негативные явления, в ЭВМ общего назначения текстовая информация представляется в формате (2.10) и в систему команд вводятся специальные операции для обработки строк символов. [10]
XN) - длина кратчайшей программы, которая получает эту последовательность на машине Тьюринга. [11]
Основными средствами минимизации длины программы, предусмотренными практически во всех входных языках, являются обращения к подпрограммам и организация циклов. Если в программе несколько одинаковых процедур, то целесообразно вынести один фрагмент с такой процедурой в подпрограмму, оканчивающуюся оператором возврата из подпрограммы, а на месте фрагментов в исходной программе записать операторы обращения к подпрограмме. Так как время выполнения подпрограмм возрастает за счет затрат времени на переходы, то организация обращений к подпрограммам оказывается целесообразной лишь при допустимом увеличении времени счета и только в том случае, если введение подпрограмм уменьшает общую длину программы. [12]
![]() |
Схема двукратного обращения к двум подпрограммам из главной программы. [13] |
Использование подпрограммы сокращает длину программы. Блок, символизирующий команду Переход к подпрограмме, является точкой передачи управления подпрограмме. Блок-схема алгоритма подпрограммы начинается блоком Вход, за которым следуют блоки присвоения переменной Y значения X2, переменной Z значения V2X2, вывода на печать значений X и Y, а также X и Z. Завершает блок-схему блок Возврат, обозначающий возврат управления в ту точку программы, из которой происходило обращение к подпрограмме, т.е. на вход блока, расположенного после блока Переход к подпрограмме. На рис. 5.9 схематически изображено семикратное обращение к подпрограмме в процессе выполнения главной программы. [14]
По меньшей мере от длины программы прямо зависит время, затрачиваемое на передачу программы между оперативной и внешней памятью при переключении ее активности. [15]