Тест производительности МК-161 - золотое сечение
Программа рассчитывает либо 512 знаков золотого сечения и результат помещает в регистры, либо 12288 знаков и результат размещает в блокноте. Эмулятор Павла Петрова на моем ноутбуке в первом случае отрабатывает 7-8 секунд на максимальной скорости, а во втором - около 320 секунд. Вычислительная сложность где-то N log(N)
. Хотелось бы знать, сколько будет работать реальная машинка и корректно ли. С блокнотом лучше не экспериментировать, т.к. по документации он рассчитан на ограниченное число перезаписей.
Фишки следующие:
- квадратный корень из пяти вычисляется итерациями, каждая итерация практически удваивает число знаков;
- для реализации умножения длинных чисел используется быстрое преобразование Фурье (БПФ);
- БПФ оформлено рекурсивно;
- для этого потребовался программный стек для передачи параметров в рекурсивную функцию;
- раз есть стек, то и для других подпрограмм параметры можно класть на стек.
Итого около 2000 шагов кода. Не знаю, есть ли зарубежные калькуляторы, на которых можно руками запрограммировать БПФ.
blog comments powered by Disqus