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:
Comparing Dates in Java
DistinctBy in the Java Stream API
Java Program to Implement Direct Addressing Tables
Java Program to Construct an Expression Tree for an Postfix Expression
Spring Boot - Web Socket
Lập trình mạng với java
Một số tính năng mới về xử lý ngoại lệ trong Java 7
SOAP Web service: Authentication trong JAX-WS
Java Program to Apply Above-Below-on Test to Find the Position of a Point with respect to a Line
Sorting Query Results with Spring Data
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Overflow and Underflow in Java
Date Time trong Java 8
Java Program to Generate All Subsets of a Given Set in the Gray Code Order
Logging a Reactive Sequence
Java Program to Implement Binary Heap
Removing all Nulls from a List in Java
The DAO with Spring and Hibernate
Java Program to Implement Solovay Strassen Primality Test Algorithm
Setting the Java Version in Maven
JUnit5 @RunWith
Chuyển đổi giữa các kiểu dữ liệu trong Java
Java Program to Perform the Unique Factorization of a Given Number
Java Program to Implement RoleList API
Hướng dẫn Java Design Pattern – Interpreter
Spring Boot - Application Properties
Java Program to Permute All Letters of an Input String
Java Scanner hasNext() vs. hasNextLine()
Java Program to Implement the Hill Cypher
Handling Errors in Spring WebFlux
Java Program to Find Whether a Path Exists Between 2 Given Nodes
Java 14 Record Keyword