Здравствуйте. Мой вопрос(ы): "Существуют ли быстрые алгоритмы получения факториала?
Если таковые существуют, то какие именно? И где об этом можно прочитать?"
Прошу дать ссылку.
На этот вопрос натолкнул опыт практически «молниеносного» вычисления факториала в Wolfram Mathematika. Ниже привожу пример.
Код:
Timing[Factorial[10]]
{0. Second,3628800}
Timing[Factorial[100];]
{0. Second,Null}
Timing[Factorial[1000];]
{0. Second,Null}
Timing[Factorial[10000];]
{0.015 Second,Null}
Timing[Factorial[50000];]
{0.125 Second,Null}
Timing[Factorial[100000];]
{0.329 Second,Null}
Timing[Factorial[200000];]
{0.953 Second,Null}
Timing[Factorial[300000];]
{1.609 Second,Null}
Timing[Factorial[400000];]
{2.36 Second,Null}
Timing[Factorial[1000000];]
{8.141 Second,Null}
Получается, что для любого
факториал вычисляется за 0 сек?
Факториал
вычисляется за 0,015сек, факториал
- за 0,329сек, а факториал
- за 8,141сек. (При этом естественно сами значения факториалов – огромные числа, все цифры которых невозможно даже увидеть).
Интересно, а какой алгоритм вычисления факториала используется в Mathematika?
P.S. Просьба модераторам. Долго сомневался в какую тему разместить - вроде в программирование, или в около научный софт. Прошу модераторов поправить если что не так.