Cześć.
Mam problem z napisaniem implementacji do poniższego algorytmu (nieliniowy generator odwrotności modulo):
Dla równania bez odwrotności modulo algorytm wygląda tak:
int main()
{
unsigned long long m,a,c,x,x0;
cin >> m >> a >> c >> x0;
x = x0;
do
{
x = (a * x + c) % m;
cout << x << " ";
} while(x != x0);
cout << endl;
return 0;
}
Dokładniej nie bardzo wiem jak obliczyć odwrotność modulo dla zadanego m dla każdego z osobna x (wiem tylko, że najlepiej wykorzystać rozszerzony algorytm Euklidesa). Chciałbym to zrobić w osobnej funkcj, która na początku programu obliczyłaby odwrotności dla zadanego przez użytkownika m, i na podstawie tych wygenerowanych odwrotności wtedy będzie można policzyć Xn wg podanego wyżej kodu.
Czy ktoś może pomóc w rozwiązaniu tego problemu?