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:
Apache Commons Collections OrderedMap
Guide to the Java Queue Interface
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Program to Generate a Random UnDirected Graph for a Given Number of Edges
Java Program to Implement ConcurrentHashMap API
Java – Write an InputStream to a File
Convert char to String in Java
Sending Emails with Java
Injecting Prototype Beans into a Singleton Instance in Spring
Java Program to Implement RoleList API
Set Interface trong Java
Xây dựng ứng dụng Client-Server với Socket trong Java
How to Round a Number to N Decimal Places in Java
Java Program to Construct a Random Graph by the Method of Random Edge Selection
Java TreeMap vs HashMap
Java Program to Implement Ternary Search Tree
Java Program to Compute Discrete Fourier Transform Using Naive Approach
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Java Program to Perform Postorder Non-Recursive Traversal of a Given Binary Tree
Spring Boot - Build Systems
Hướng dẫn Java Design Pattern – Interpreter
“Stream has already been operated upon or closed” Exception in Java
JUnit5 Programmatic Extension Registration with @RegisterExtension
Spring Security – Reset Your Password
Introduction to Spring Cloud OpenFeign
Java Program to Implement Gauss Seidel Method
Filtering and Transforming Collections in Guava
New Features in Java 8
Default Password Encoder in Spring Security 5
Java Program to Implement Kosaraju Algorithm
Compact Strings in Java 9
Java Program to Implement Word Wrap Problem