I want to calculate cos(nx) = p/q Using recursion and memoization so i tried Chebyshev Method for Recursive Method it works for small inputs of n but i want to do it for larger inputs like 10^18 etc. How should i approach it to calculate cos(nx) in p/q Form?
cos(x) = a/b Known
#include <bits/stdc++.h> using namespace std; map<long, long> numerator; map<long, long> denominator; #define MODULO 1000000007 long a, b, n; int main() { cin >> a >> b; cin >> n; numerator[0] = 1; numerator[1] = a; denominator[0] = 1; denominator[1] = b; for (long i = 2; i <= n; ++i) { numerator[i] = (long) (2 * a * numerator[i - 1] - b*numerator[i - 2]) % MODULO; denominator[i] = (denominator[i - 1] * denominator[i - 2]) % MODULO; } cout << "numerator of cos(nx) = " << numerator[n] << " denominator = " << denominator[n] << endl; }