제공자 : ○ 동작 및 그룹 V 구성과 세트 a∈V는, 예를 식별 소자 ○ 동작이다.
즉, 임의의 전자에 대한 전자 ○ ○ E = A = A가 존재하는 만족
우리는 기억
0 = E
N은 A = N-1 ○을
그것은 다음과 같은 속성이 있습니다
N + m = A N ○ m
이 때, 빠른 전원에 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 전원의 전력이면
코드 위 그래서
다른 점은 승산 동작의 전원을 가산 지수를 사용하여 최적화 될 수 있다는