Java Program to Generate All Pairs of Subsets Whose Union Make the Set

This is a java program to generate and print all the pair of subsets whose union makes the original set.

Here is the source code of the Java Program to Generate All Pairs of Subsets Whose Union Make the Set. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.

//This is a java program to generate all pair of subsets whose union results the original set
import java.util.Random;
import java.util.Scanner;
 
public class Pair_Subset_Union_Set 
{
    public static int[] binary(int N) 
    {
        int[] binary = new int[(int) Math.pow(2, N)];
        for (int i = 0; i < Math.pow(2, N); i++) 
        {
            int b = 1;
            binary[i] = 0;
            int num = i;
            while (num > 0) 
            {
                binary[i] += (num % 2) * b;
                num /= 2;
                b = b * 10;
            }
        }
        return binary;
    }
 
    public static void main(String args[]) 
    {
        Random random = new Random();
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number of elements in the set: ");
        int N = sc.nextInt();
        int[] sequence = new int[N];
        for (int i = 0; i < N; i++)
            sequence[i] = Math.abs(random.nextInt(100));
 
        System.out.println("The elements in the set : ");
        for (int i = 0; i < N; i++)
            System.out.print(sequence[i] + " ");
 
        int[] mask = new int[(int) Math.pow(2, N)];
        mask = binary(N);
 
        System.out
                .println("\nThe pair of permutations whose union is original set are: ");
        for (int i = 0; i < (Math.pow(2, N) / 2); i++) 
        {
            System.out.print("{ ");
            for (int j = 0; j < N; j++) 
            {
                if (mask[i] % 10 == 1)
                    System.out.print(sequence[j] + " ");
                mask[i] /= 10;
            }
            System.out.print("} and ");
 
            System.out.print("{ ");
            for (int j = 0; j < N; j++) 
            {
                if (mask[(int) Math.pow(2, N) - 1 - i] % 10 == 1)
                    System.out.print(sequence[j] + " ");
                mask[(int) Math.pow(2, N) - 1 - i] /= 10;
            }
            System.out.println("}");
        }
        sc.close();
    }
}

Output:

$ javac Pair_Subset_Union_Set.java
$ java Pair_Subset_Union_Set
 
Enter the number of elements in the set: 
5
The elements in the set : 
3 47 97 79 8 
The pair of permutations whose union is original set are: 
{ } and { 3 47 97 79 8 }
{ 3 } and { 47 97 79 8 }
{ 47 } and { 3 97 79 8 }
{ 3 47 } and { 97 79 8 }
{ 97 } and { 3 47 79 8 }
{ 3 97 } and { 47 79 8 }
{ 47 97 } and { 3 79 8 }
{ 3 47 97 } and { 79 8 }
{ 79 } and { 3 47 97 8 }
{ 3 79 } and { 47 97 8 }
{ 47 79 } and { 3 97 8 }
{ 3 47 79 } and { 97 8 }
{ 97 79 } and { 3 47 8 }
{ 3 97 79 } and { 47 8 }
{ 47 97 79 } and { 3 8 }
{ 3 47 97 79 } and { 8 }
 
Enter the number of elements in the set: 
3
The elements in the set : 
37 76 87 
The pair of permutations whose union is original set are: 
{ } and { 37 76 87 }
{ 37 } and { 76 87 }
{ 76 } and { 37 87 }
{ 37 76 } and { 87 }

Related posts:

Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Vòng lặp for, while, do-while trong Java
Deploy a Spring Boot App to Azure
Autoboxing và Unboxing trong Java
Constructor Dependency Injection in Spring
Spring Boot - Tracing Micro Service Logs
Guide to Dynamic Tests in Junit 5
Functional Interface trong Java 8
Hướng dẫn Java Design Pattern – Proxy
Java Program to Implement ScapeGoat Tree
An Introduction to ThreadLocal in Java
Map Serialization and Deserialization with Jackson
Guide to the Java TransferQueue
Performance Difference Between save() and saveAll() in Spring Data
Java Program to Implement Vector API
Java – Random Long, Float, Integer and Double
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Hướng dẫn Java Design Pattern – Abstract Factory
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Spring Boot - Apache Kafka
Java Program to Implement Queue
Intro to Inversion of Control and Dependency Injection with Spring
Java Program to Generate Random Numbers Using Multiply with Carry Method
Exploring the Spring 5 WebFlux URL Matching
Concurrent Test Execution in Spring 5
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Spring Boot - Google OAuth2 Sign-In
Java Program to Implement Gale Shapley Algorithm
Spring Security with Maven
Java Program to Implement Dijkstra’s Algorithm using Priority Queue

1 Trackback / Pingback

  1. Java generate all pairs

Comments are closed.