#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
// Parameters
int a = 5, c = 3, m = 16;
int x = 1; // seed
int n = 10; // number of values to generate
vector<int> generated;
vector<double> normalized;
// Generate sequence
for (int i = 0; i < n; i++) {
x = (a * x + c) % m;
generated.push_back(x);
normalized.push_back((double)x / m);
}
// Print results
cout << "Generated numbers (X_n): ";
for (int val : generated) cout << val << " ";
cout << endl;
cout << "Normalized values (U_n): ";
for (double val : normalized) cout << val << " ";
cout << endl;
// Check for repetitions
set<int> uniq(generated.begin(), generated.end());
if (uniq.size() < generated.size())
cout << "There are repetitions in the sequence." << endl;
else
cout << "No repetitions in the first 10 numbers." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICAvLyBQYXJhbWV0ZXJzCiAgICBpbnQgYSA9IDUsIGMgPSAzLCBtID0gMTY7CiAgICBpbnQgeCA9IDE7ICAgLy8gc2VlZAogICAgaW50IG4gPSAxMDsgIC8vIG51bWJlciBvZiB2YWx1ZXMgdG8gZ2VuZXJhdGUKCiAgICB2ZWN0b3I8aW50PiBnZW5lcmF0ZWQ7CiAgICB2ZWN0b3I8ZG91YmxlPiBub3JtYWxpemVkOwoKICAgIC8vIEdlbmVyYXRlIHNlcXVlbmNlCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHggPSAoYSAqIHggKyBjKSAlIG07CiAgICAgICAgZ2VuZXJhdGVkLnB1c2hfYmFjayh4KTsKICAgICAgICBub3JtYWxpemVkLnB1c2hfYmFjaygoZG91YmxlKXggLyBtKTsKICAgIH0KCiAgICAvLyBQcmludCByZXN1bHRzCiAgICBjb3V0IDw8ICJHZW5lcmF0ZWQgbnVtYmVycyAoWF9uKTogIjsKICAgIGZvciAoaW50IHZhbCA6IGdlbmVyYXRlZCkgY291dCA8PCB2YWwgPDwgIiAiOwogICAgY291dCA8PCBlbmRsOwoKICAgIGNvdXQgPDwgIk5vcm1hbGl6ZWQgdmFsdWVzIChVX24pOiAiOwogICAgZm9yIChkb3VibGUgdmFsIDogbm9ybWFsaXplZCkgY291dCA8PCB2YWwgPDwgIiAiOwogICAgY291dCA8PCBlbmRsOwoKICAgIC8vIENoZWNrIGZvciByZXBldGl0aW9ucwogICAgc2V0PGludD4gdW5pcShnZW5lcmF0ZWQuYmVnaW4oKSwgZ2VuZXJhdGVkLmVuZCgpKTsKICAgIGlmICh1bmlxLnNpemUoKSA8IGdlbmVyYXRlZC5zaXplKCkpCiAgICAgICAgY291dCA8PCAiVGhlcmUgYXJlIHJlcGV0aXRpb25zIGluIHRoZSBzZXF1ZW5jZS4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiTm8gcmVwZXRpdGlvbnMgaW4gdGhlIGZpcnN0IDEwIG51bWJlcnMuIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9