2.2. Вычисления

We use cookies. Read the Privacy and Cookie Policy

2.2. Вычисления

В этом разделе мы поговорим о вычислениях. Под вычислением (или алгоритмом) я подразумеваю действие некоторой машины Тьюринга, или, иными словами, действие компьютера, задаваемое той или иной компьютерной программой. Не следует забывать и о том, что понятие вычисления включает в себя не только выполнение обычных арифметических действий — таких, например, как сложение или умножение чисел, — но и некоторые другие процессы. Так, частью вычислительной процедуры могут стать и вполне определенные логические операции. В качестве примера вычисления можно рассмотреть следующую задачу:

(А) Найти число, не являющееся суммой квадратов трех чисел.

Под «числом» в данном случае я подразумеваю «натуральное число», т.е. число из ряда

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ….

Под квадратом числа понимается результат умножения натурального числа на само себя, т.е. число из ряда

0, 1, 4, 9, 16, 25, 36, …;

представленные в этом ряду числа получены следующим образом:

0 ? 0 = 02, 1 ? 1 = 12, 2 ? 2 = 22, 3 ? 3 = 32, 4 ? 4 = 42, 5 ? 5 = 52, 6 ? 6 = 62, ….

Такие числа называются «квадратами», поскольку их можно представить в виде квадратных матриц (пустой матрицей в начале строки обозначен 0):

С учетом вышесказанного решение задачи (А) может происходить следующим образом. Мы поочередно проверяем каждое натуральное число, начиная с 0, на предмет того, не является ли оно суммой трех квадратов. При этом, разумеется, рассматриваются только те квадраты, величина которых не превышает самого числа. Таким образом, для каждого натурального числа необходимо проверить некоторое конечное количество квадратов. Отыскав тройку квадратов, составляющих в сумме данное число, переходим к следующему натуральному числу и снова ищем среди квадратов (не превышающих по величине рассматриваемое число) такие три, которые дают в сумме это самое число. Вычисление завершается лишь тогда, когда мы находим натуральное число, которое невозможно получить путем сложения любых трех квадратов. Попробуем применить описанную процедуру на практике и начнем наше вычисление с нуля. Нуль равен 02 + 02 + 02, что, безусловно, является суммой трех квадратов. Далее рассматриваем единицу и находим, что она не равна 02 + 02 + 02, однако равна 02 + 02 + 12. Переходим к числу 2 и выясняем, что оно не равно ни 02 + 02 + 02, ни 02 + 02 + 12, но равно 02 + 12 + 12. Затем следует число 3 и сумма 3 = 12 + 12 + 12; далее — число 4 и сумма 4 = 02 + 02 + 22; после 5 = 02 + 12 + 22 и 6 = 12 + 12 + 22 переходим к 7, и тут обнаруживается, что ни одна из троек квадратов (всех возможных троек квадратов, каждый из которых не превышает 7)

02 + 02 + 0 02 + 02 + 1 02 + 02 + 2 02 + 12 + 1 02 + 12 + 22

02 + 22 + 22   12 + 12 + 12   12 + 12 + 22   12 + 22 + 12   22 + 22 + 22

не дает в сумме 7. На этом этапе вычисление завершается, а мы делаем вывод: 7 есть одно из искомых чисел, так как оно не является суммой квадратов трех чисел.