38 прочтений · 2 года назад
Факториал числа N = N!
Всем привет! Начнем с классического варианта алгоритма: Есть еще вариант алгоритма на рекурсии: Забегу вперед, и напишу, что расчет 50 000! классическим алгоритмом занял 22 сек. против 1,6 сек реализации на Cи Шарп (смотрите публикацию на Хабр Алгоритмы быстрого вычисления факториала). Реализация на 1С рекурсии вылетает из 1С даже для 2000! Интересные обсуждения на эту тему есть под публикацией 2014 года Библиотека математических функций 1.1 Я подумал, что в жизни, наверное, нет задач, в которых надо рассчитать факториал единожды...
116 прочтений · 2 года назад
Пишем самомодифицирующуюся программу вычисления факториала под x86
Базовый факториал Для начала нам понадобится обычная программа вычисления факториала. factorial: push ebp mov ebx, eax factorial_start: sub ebx, 1 cmp ebx, 0 je factorial_end mul ebx jmp factorial_start factorial_end: pop ebp ret Здесь все довольно просто. Самомодифицирующийся факториал В алгоритме вычисления факториала есть два места, в которых изменение значения при выполнении имеет смысл: начальное значение и множитель. Технические особенности Во-первых, самомодифицирующиеся программы имеют свою специфику...