A/B关于C取模时,A和B很大时(如组合数,那就需要中间取模了,而除法不能直接取模),这时如果C是素数时,可以使用费马小定理:A * mypow(B,C-2)
而B不是很大时,可以利用先乘后除来进行解决 ,如 a=b*x+c 则 a%b==c 而 a*k=b*x*k+c*k 取模之后 (a*k)%(b*k)==c*k,即当模与数扩大K倍时,余数也扩大了K倍,这也就是说可以先利用乘法将分数化为整数,这样就能对分子的中间进行取模了,在最后再除以K即可得到正确结果。
A/B关于C取模时,A和B很大时(如组合数,那就需要中间取模了,而除法不能直接取模),这时如果C是素数时,可以使用费马小定理:A * mypow(B,C-2)
而B不是很大时,可以利用先乘后除来进行解决 ,如 a=b*x+c 则 a%b==c 而 a*k=b*x*k+c*k 取模之后 (a*k)%(b*k)==c*k,即当模与数扩大K倍时,余数也扩大了K倍,这也就是说可以先利用乘法将分数化为整数,这样就能对分子的中间进行取模了,在最后再除以K即可得到正确结果。