aneira rápida de calcular n! mod m onde m é primo?
Fiquei curioso para saber se havia uma boa maneira de fazer isso. Meu código atual é algo como:
def factorialMod(n, modulus):
ans=1
for i in range(1,n+1):
ans = ans * i % modulus
return ans % modulus
Mas parece bastante lento!
Eu também não consigo calcular n! e, em seguida, aplique o módulo primo porque às vezes n é tão grande que n! simplesmente não é possível calcular explicitamente.
Eu também me deparei comhttp: //en.wikipedia.org/wiki/Stirling%27s_approximatio e me pergunto se isso pode ser usado aqui de alguma form
Or, como posso criar uma função recursiva e memorizada em C +