This is the java implementation of Multiply With Carry (MWC) algorithm to generate a set of random numbers. 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. The formula it uses is, x(n) = (a*x(n-r) + c(n-1))mod n and c(n) = (a*x(n-r) + c(n-1))/n, where a is any multiplier, m is modulus, c is carry and r is initial number of seeds.
Here is the source code of the Java Program to Generate Random Numbers Using Multiply with Carry Method. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a sample program to generate a random numbers based on Multiply with carry method
import java.util.Random;
public class Multiply_With_Carry
{
public static void main(String args[])
{
int max_Sequence_Elements = 10;
Random random = new Random();
int base_b = 2000;
int multiplier_a = random.nextInt(base_b);
int r = 1;
int []c = new int[max_Sequence_Elements];
int []x = new int[max_Sequence_Elements];
c[0] = random.nextInt(multiplier_a);
x[0] = random.nextInt(base_b);
System.out.print("The random number sequence is: " + x[0]);
//generating sequence
for(int i=1; i<max_Sequence_Elements; i++)
{
x[i] = (multiplier_a*x[i-r] + c[i-1]) % base_b;
c[i] = (multiplier_a*x[i-r] + c[i-1]) / base_b;
System.out.print(" " + x[i]);
}
}
}
Output:
$ javac Multiply_With_Carry.java $ java Multiply_With_Carry The random number sequence is: 795 382 1487 260 475 1798 1347 722 1389 63
Related posts:
Chuyển đổi Array sang ArrayList và ngược lại
Intro to Inversion of Control and Dependency Injection with Spring
Java Program to Perform Inorder Recursive Traversal of a Given Binary Tree
LinkedHashSet trong Java hoạt động như thế nào?
Adding a Newline Character to a String in Java
Using Custom Banners in Spring Boot
Quick Guide to Spring MVC with Velocity
Java Program to Solve any Linear Equation in One Variable
OAuth2.0 and Dynamic Client Registration
Spring Boot Application as a Service
Derived Query Methods in Spring Data JPA Repositories
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Java Program to Implement Efficient O(log n) Fibonacci generator
Spring WebClient and OAuth2 Support
Java Program to Implement Levenshtein Distance Computing Algorithm
Java Program to Implement Hamiltonian Cycle Algorithm
Java Program to Implement CopyOnWriteArraySet API
Static Content in Spring WebFlux
Java Program to Implement Shunting Yard Algorithm
Java Program to Implement the Hill Cypher
Guide to WeakHashMap in Java
Java Program to Implement Stack API
Programmatic Transaction Management in Spring
Spring Boot - Rest Controller Unit Test
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
TreeSet và sử dụng Comparable, Comparator trong java
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
Java Program to Implement Double Order Traversal of a Binary Tree
Luồng Daemon (Daemon Thread) trong Java
Custom Exception trong Java
Hướng dẫn Java Design Pattern – Facade
Merging Streams in Java