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