큰 수의 경우 아래 표현식을 계산하려고합니다. 이 식의 값이 매우 큰 것 때문에 모듈러 산술을위한 코드 최적화
은, 난 그냥이 식의 값이 일부 소수를 계수해야합니다. 이 표현식의 값이x
이고 소수
1000000007
을 선택한다고 가정합니다. 나는
x % 1000000007
을 찾고 있습니다.
여기 내 코드입니다.
#include<iostream>
#define MOD 1000000007
using namespace std;
int main()
{
unsigned long long A[1001];
A[2]=2;
for(int i=4;i<=1000;i+=2)
{
A[i]=((4*A[i-2])/i)%MOD;
A[i]=(A[i]*(i-1))%MOD;
while(1)
{
int N;
cin>>N;
cout<<A[N];
}
}
하지만 N이 50 인 경우에도,이 최적화는 많은 예를 들면 N. 큰 값 실패 올바른 출력 605552882
이지만,이 날 132924730
제공
참고 : N을 짝수로만 간주합니다.
도움이되기를 바랍니다. – g4ur4v
[n을 계산하는 빠른 방법! mod m 여기서 m은 소수입니다.] (http://stackoverflow.com/questions/9727962/fast-way-to-calculate-n-mod-m-where-m-is-prime). 또한 이것은 더 잘 맞지만 답이 없습니다 : [큰 프라임 p와 매우 큰 N에 대해 nCk % P를 계산하는 방법] (http://stackoverflow.com/questions/14475139) –