# C++ Program to Generate Random Numbers using Multiply with Carry Method

«
»
This is a C++ Program to generate random numbers using Multiply with Carry method. In computer science, multiply-with-carry (MWC) is a method invented by George Marsaglia for generating sequences of random integers based on an initial set from two to many thousands of randomly chosen seed values. The main advantages of the MWC method are that it invokes simple computer integer arithmetic and leads to very fast generation of sequences of random numbers with immense periods, ranging from around 260 to 22000000.

Here is source code of the C++ Program to Generate Random Numbers Using Multiply with Carry Method. The C++ program is successfully compiled and run on a Linux system. The program output is also shown below.

1. `#include <iostream>`
2. `#include <math.h>`
3. `#include <stdlib.h>`
4. ` `
5. `using namespace std;`
6. ` `
7. `int main(int argc, char **argv)`
8. `{`
9. `    int max_Sequence_Elements = 10;`
10. ` `
11. `    int base_b = 2000;`
12. `    int multiplier_a = rand() % base_b;`
13. `    int r = 1;`
14. `    int c[max_Sequence_Elements];`
15. `    int x[max_Sequence_Elements];`
16. ` `
17. `    c = rand() % multiplier_a;`
18. `    x = rand() % base_b;`
19. ` `
20. `    cout << "The random number sequence is: " << x;`
21. `    //generating sequence`
22. `    for (int i = 1; i < max_Sequence_Elements; i++)`
23. `    {`
24. `        x[i] = (multiplier_a * x[i - r] + c[i - 1]) % base_b;`
25. `        c[i] = (multiplier_a * x[i - r] + c[i - 1]) / base_b;`
26. `        cout << " " << x[i];`
27. `    }`
28. `    cout << "...";`
29. `}`

Output:

```\$ g++ MultiplyWithCarry.cpp
\$ a.out

The random number sequence is: 334 1711 157 472 1355 1564 151 223 1146 990...```

Sanfoundry Global Education & Learning Series – 1000 C++ Programs.

Note: Join free Sanfoundry classes at Telegram or Youtube 