Java Program to Generate Random Numbers Using Middle Square Method

This is java program to generate the random numbers. In mathematics, the middle-square method is a method of generating ‘pseudorandom’ numbers.To generate a sequence of 4-digit pseudorandom numbers, a 4-digit starting value is created and squared, producing an 8-digit number (if the result is less than 8 digits, leading zeroes are added to compensate). The middle 4 digits of the result would be the next number in the sequence, and returned as the result. This process is then repeated to generate more numbers.

Here is the source code of the Java Program to Generate Random Numbers Using Middle Square 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 random numbers using the middle square method
import java.util.Random;
import java.util.Scanner;
 
 
public class Middle_Suqare_Method 
{
    static int a[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000};
    static int middleSquareNumber(int numb, int dig)
    {
        int sqn = numb*numb, next_num=0;
        int trim = (dig/2);
        sqn = sqn / a[trim];
        for(int i=0; i<dig; i++)
        {
            next_num += (sqn%(a[trim]))*(a[i]);
            sqn = sqn/10;
        }
        return next_num;
    }
    public static void main(String args[])
    {
        System.out.println("Enter the #-digit random numbers you want: ");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
 
        int start=1, end=1;
 
        start = a[n-1];
        end = a[n]; 
 
        Random rand = new Random();
        int number = rand.nextInt(end-start)+start;
        System.out.print("The random numbers are:\n" +number+", ");
        int new_number=0;
        for(int i=0; i<9; i++)
        {
            number = Middle_Suqare_Method.middleSquareNumber(number, n);
            System.out.print(number+", ");
        }
        System.out.print("...");
 
        sc.close();
    }
}

Output:

$ javac Middle_Square_Method.java
$ java Middle_Square_Method
Enter the #-digit random numbers you want: 
2
The random numbers are:
89, 92, 46, 11, 12, 14, 19, 36, 29, 84, ...

Related posts:

Java Program to Implement vector
Changing Annotation Parameters At Runtime
Java Program to Perform String Matching Using String Library
Serverless Functions with Spring Cloud Function
Giới thiệu luồng vào ra (I/O) trong Java
Lớp Arrarys trong Java (Arrays Utility Class)
How To Serialize and Deserialize Enums with Jackson
Spring Cloud AWS – Messaging Support
JUnit5 Programmatic Extension Registration with @RegisterExtension
Enum trong java
Jackson – JsonMappingException (No serializer found for class)
Guide to System.gc()
Java InputStream to String
Debug a HttpURLConnection problem
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Anonymous Classes in Java
Java Program to Implement DelayQueue API
Java Program to Find Minimum Number of Edges to Cut to make the Graph Disconnected
Xây dựng ứng dụng Client-Server với Socket trong Java
Call Methods at Runtime Using Java Reflection
Spring Boot Actuator
Getting the Size of an Iterable in Java
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux
Validate email address exists or not by Java Code
Spring Security Authentication Provider
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Java – InputStream to Reader
Java Program to Implement Expression Tree
Java Program to Implement Self Balancing Binary Search Tree
Java Program to Implement Pollard Rho Algorithm
Quick Guide to the Java StringTokenizer