This is a java program to generate and print all possible subsets using the method of Binary Counting method. The generations of subsets are done using binary numbers. Let there be 3 elements in the set, we generate binary equivalent of 2^3 = 8 numbers(0-7), where each bit in a number represents the presence/absence of element in the subset. The element is present if bit is 1, absent otherwise. 010 – only second element is present in the subset.
Here is the source code of the Java Program to Implement the Binary Counting Method to Generate Subsets of a 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 subsets of given set of numbers using binary counting method import java.util.Random; import java.util.Scanner; public class Binary_Counting_Subsets { 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 permutations are: "); for (int i = 0; i < Math.pow(2, N); 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.println("}"); } sc.close(); } }
Output:
$ javac Binary_Counting_Subsets.java $ java Binary_Counting_Subsets Enter the number of elements in the set: 5 The elements in the set : 78 35 5 10 15 The permutations are: { } { 78 } { 35 } { 78 35 } { 5 } { 78 5 } { 35 5 } { 78 35 5 } { 10 } { 78 10 } { 35 10 } { 78 35 10 } { 5 10 } { 78 5 10 } { 35 5 10 } { 78 35 5 10 } { 15 } { 78 15 } { 35 15 } { 78 35 15 } { 5 15 } { 78 5 15 } { 35 5 15 } { 78 35 5 15 } { 10 15 } { 78 10 15 } { 35 10 15 } { 78 35 10 15 } { 5 10 15 } { 78 5 10 15 } { 35 5 10 15 } { 78 35 5 10 15 }
Related posts:
Hướng dẫn sử dụng Printing Service trong Java
Biểu thức Lambda trong Java 8 – Lambda Expressions
Instance Profile Credentials using Spring Cloud
Class Loaders in Java
Hướng dẫn Java Design Pattern – State
Guide to Dynamic Tests in Junit 5
Spring Cloud AWS – S3
Display Auto-Configuration Report in Spring Boot
Examine the internal DNS cache
Java Program to Find the Vertex Connectivity of a Graph
Java 8 Stream findFirst() vs. findAny()
Java Program to Generate Randomized Sequence of Given Range of Numbers
Java Program to Implement AttributeList API
Java Program to implement Sparse Vector
Spring Boot - Cloud Configuration Client
Immutable Objects in Java
Introduction to Spring Data JDBC
Java Program to Perform Quick Sort on Large Number of Elements
Merging Streams in Java
Java Program to Find a Good Feedback Vertex Set
Handling Errors in Spring WebFlux
Java Program to Implement Iterative Deepening
Java Program to Implement Coppersmith Freivald’s Algorithm
Quản lý bộ nhớ trong Java với Heap Space vs Stack
Spring Data JPA @Query
Compare Two JSON Objects with Jackson
Java Program to Optimize Wire Length in Electrical Circuit
Java Program to Implement Expression Tree
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Represent Graph Using Incidence Matrix
Static Content in Spring WebFlux
Java Program to Implement the RSA Algorithm