Продолжаем тему вычислений. Чтобы считать эффективно, мало иметь много процессоров — надо написать хорошо распараллеленный алгоритм, который и сам по себе должен быть эффективен. Например, пусть нам надо возвести матрицу в какую-то большую степень. По определению, степень матрицы — это матрица, умноженная сама на себя указанное число раз. Умножение матриц довольно дорого, это n³ операций умножения (и много сложений ещё). Если действовать тупо по определению, то сорок вторая степень — это 41 умножение матриц...
Коль скоро мы заговорили про необычные языки программирования, держи еще один в свою коллекцию.
Знакомься, Forth. Это язык программирования, который был разработан в конце 1960-х годов для управления роботами. Forth имеет синтаксис, основанный на обратной польской нотации (ОПН), вот пример кода на Форте, который вычисляет факториал числа.
: factorial ( n -- n! )
1 swap
begin dup 0>
while * swap - dup
repeat
drop ;
Код начинается с определения нового слова "factorial", которое принимает один аргумент n и оставляет на результат n!...