빠른 일반화 전력

제공자 : ○ 동작 및 그룹 V 구성과 세트 a∈V는, 예를 식별 소자 ○ 동작이다.

즉, 임의의 전자에 대한 전자 ○ ○ E = A = A가 존재하는 만족

우리는 기억

0 = E

N은 A = N-1 ○을

그것은 다음과 같은 속성이 있습니다

N + m = A Nm

이 때, 빠른 전원에 n 번째 전력 계산의 계산 ○ 쓸 수 있습니다

입술 = E; 온도 = A;

동안 (N)

{

        경우 (n은 1)

                고해상도 = 고해상도 ○ 온도;

        온도 = 온도 ○ 온도;

        N >> = 1;

}

고해상도를 반환;

가산 항등원은 0, 1의 승산 인 것을

  때문에 같은 N + 0, N * 1 불변

 

추가의 지수

LL quick_mul (a -1,11,11-의 B, C의 LL)     
{ 
	LL 입술 = 0; 
	반면 (b! = 0) 
	{ 
		경우 (2 % B == 1) 
			입술 = (a + 입술) %의 C; 
		A = (a + a) 동작 %의 C; 
		B / 2 =; 
	} 
	고해상도를 반환; 
}

곱하기 지수

quick_pow 것이다 (a -1,11,11-의 B, C의 LL) 
{ 
    LL 입술 = 1 ;
    반면 (b! = 0 ) 
    { 
        경우 (b %의 (2) == 1 )
             입술 = % C //优化(입술 A *)    입술 = quick_mul (입술, A, C)를; = CQ (A, A, C); 
        B / = 2 ; 
    } 
    반환 입술을; 
}

 

먼저, 노하우 (a * b) %의 C == (a %의 C) * (b %의 온도) (A + B를) %의 C에서 == % C + B %의 C

  특히 충분한 될 때까지 지속적으로 첫번째 모듈로 C C 저장, 다른 이름으로 저장으로 이해한다

  (a * b) %의 C == (((a %의 C) * (c * X)) * ((b %의 온도) (c * Y))) % A +의 b) %의 C == ((A C % C + A * X) + (b %의 C + B * Y)) %의 C

  상기 ((A %의 C) * (C * x는)), A는, x는 알 수없는 관계가없는 결과를 나타내고는 (다 * x)는 같은 이유로하지 저장했다

         

(B)의 전원용

B는 홀수 A는 B == * (B)의 전력 / 2 * 전원 (B)의 전력 / 2이면

B는 짝수, A는 B == B / 2 * (B)의 전력 / 2 전원의 전력이면  

코드 위 그래서

 

다른 점은 승산 동작의 전원을 가산 지수를 사용하여 최적화 될 수 있다는

추천

출처www.cnblogs.com/asdfknjhu/p/12110176.html