Мне было любопытно, существует ли хороший способ сделать это. Мой текущий код выглядит примерно так:
def factorialMod(n, modulus):
ans=1
for i in range(1,n+1):
ans = ans * i % modulus
return ans % modulus
Но он кажется довольно медленным!
Я тоже не могу вычислить n! а затем применить простой модуль, потому что иногда n настолько велико, что n! просто невозможно вычислить в явном виде.
Я также наткнулся на http://en.wikipedia.org/wiki/Stirling%27s_apprimationи задался вопросом, можно ли это вообще как-то использовать здесь?
Или как мне создать рекурсивную запоминаемую функцию на C++?