Java Program to Implement the Binary Counting Method to Generate Subsets of a Set

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:

Checked and Unchecked Exceptions in Java
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Java Program to Implement the Alexander Bogomolny’s UnOrdered Permutation Algorithm for Elements Fro...
Java Program to Solve Knapsack Problem Using Dynamic Programming
So sánh Array và ArrayList trong Java
Spring Boot - Cloud Configuration Client
Quick Guide on Loading Initial Data with Spring Boot
Java Program to Implement Radix Sort
Converting a Stack Trace to a String in Java
A Guide to Spring Boot Admin
Java Program to Generate All Possible Combinations of a Given List of Numbers
Introduction to the Java NIO2 File API
Introduction to Spring Cloud Stream
String Processing with Apache Commons Lang 3
HandlerAdapters in Spring MVC
Functional Interfaces in Java 8
Java Program to Implement the RSA Algorithm
Java String Conversions
Generating Random Numbers in a Range in Java
Overview of Spring Boot Dev Tools
Jackson – JsonMappingException (No serializer found for class)
Một số tính năng mới về xử lý ngoại lệ trong Java 7
String Operations with Java Streams
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Java Program to Implement String Matching Using Vectors
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
CharSequence vs. String in Java
4 tính chất của lập trình hướng đối tượng trong Java
Implementing a Binary Tree in Java
Java Program to Implement Interpolation Search Algorithm
Deploy a Spring Boot WAR into a Tomcat Server