首页 > 代码库 > SICP 1.25 1.26

SICP 1.25 1.26

解: 1.25

这么写的话a的n次方会很大,大数需要额外的处理。原始的expmod基于这个结论:

(a*b)%c=((a%c)*(b%c))%c,证明如下:

设a=nc+k,b=mc+h,则

(a*b)%c=((nc+k)*(mc+h))%c=(nmc^2+nhc+mkc+kh)%c=(k*h)%c=((a%c)*(b%c))%c


1.26

这么写没有使计算量逐步减半。